Py.3.3.2: sendmail mit mehreren Empfängern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Kle
User
Beiträge: 8
Registriert: Freitag 19. August 2011, 08:14

Liebes Forum

Mit Py.3.2 konnte man E-Mails an mehrere Empfänger schicken, indem man eine Liste angegeben hat.
Mit Py.3.3.2 ist nur mehr ein String erlaubt.
Weiß jemand, wie man man trotzdem mehrere Empfänger erreicht? ("," oder ";" als Trennung reicht nicht, da wird nur an den ersten eine E-Mail geschickt.)

MfG Kle
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Kle hat geschrieben:Mit Py.3.2 konnte man E-Mails an mehrere Empfänger schicken, indem man eine Liste angegeben hat.
Mit Py.3.3.2 ist nur mehr ein String erlaubt.
Laut Beschreibung von sendmail ist eine Liste durchaus zulässig.
Benutzeravatar
Kle
User
Beiträge: 8
Registriert: Freitag 19. August 2011, 08:14

Laut Beschreibung von sendmail ist eine Liste durchaus zulässig.[/quote]

Ja, mein Fehler lag nicht im sendmail sondern im
msg['To'] = email.utils.formataddr((Empfänger_Name, Empfänger_Adr))

Als Empfänger_Adr war früher eine Liste erlaubt, jetzt ist es das nicht mehr.

Vielen Dank.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Kle hat geschrieben:Als Empfänger_Adr war früher eine Liste erlaubt, jetzt ist es das nicht mehr.
email.utils.formataddr hat sich von der Dokumentation her aber seit Version 2.6 nicht geändert was diesen Parameter angeht. Vielleicht hat es früher versehentlich funktioniert.
BlackJack

Das kommt wohl sehr stark auf die Definition von „funktioniert” an. Löst es eine Ausnahme aus? Nein. Liefert es ein sinvolles, korrektes Ergebnis? Nein, auch nicht:

Code: Alles auswählen

In [6]: email.utils.formataddr(('Test', ['test@example.com', 'test@example.org']))
Out[6]: "Test <['test@example.com', 'test@example.org']>"
Es war also schon immer ein Fehler dort eine Liste zu übergeben.
mgolbs
User
Beiträge: 28
Registriert: Freitag 3. Februar 2012, 13:07

Hallo,

stehe vor dem gleichen Problem. Wie kann ich an mehrere Empfänger verschicken?

Code: Alles auswählen

...
empfaengerliste = ["abc@dfe.eu", "afr@dfe.eu","cme@dfe.eu","xeg@dfe.eu","klk@dfe.eu"]
msg['To'] = empfaengerliste 
..

oder 
..
msg['To'] = ["abc@dfe.eu", "afr@dfe.eu","cme@dfe.eu","xeg@dfe.eu","klk@dfe.eu"]
..
bringt
File "can2smtp.py", line 98, in <module>
emailserver.send_message(msg)
File "/home/ffgsf/python3.4/lib/python3.4/smtplib.py", line 832, in send_message
to_addrs = [a[1] for a in email.utils.getaddresses(addr_fields)]
File "/home/ffgsf/python3.4/lib/python3.4/email/utils.py", line 118, in getaddresses
all = COMMASPACE.join(fieldvalues)
TypeError: sequence item 0: expected str instance, list found
Komisch ist dann nur, dass die Liste nach Programmabbruch, setzen eines einzelnen Empfängers und Neustart dann doch Stück für Stück abgearbeitet wird und im email Postfach erscheint. Erst der erste Empfänger als mail, dann erster und zweiter Empfänger als separate mail, ..... bis dann doch die gesamte Liste als mail erscheint...

Im Netz finde ich aber auch keine andere Lösung...??

Über Tipps und Infos wäre ich sehr dankbar.

Gruß Markus
Antworten