So senden Sie ein E-Mail an mehrere Empfänger mit python smtplib?

Nach langem suchen konnte ich nicht herausfinden, wie Sie smtplib.sendmail zum senden an mehrere Empfänger. Das problem war jedes mal die mail würde an die E-mail-Kopfzeilen erscheinen würde, um die mehrere Adressen, aber in der Tat nur der erste Empfänger den Erhalt der E-Mail.

Das problem scheint zu sein, dass die E-Mail.Message Modul erwartet etwas anderes als der smtplib.sendmail() Funktion.

Kurz, zu senden an mehrere Empfänger müssen Sie die header-ein string, der durch Kommas getrennte E-Mail-Adressen. Die sendmail() parameter to_addrs jedoch sollte eine Liste von E-Mail-Adressen.

from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
import smtplib

msg = MIMEMultipart()
msg["Subject"] = "Example"
msg["From"] = "[email protected]"
msg["To"] = "[email protected],[email protected],[email protected]"
msg["Cc"] = "[email protected],[email protected]"
body = MIMEText("example email body")
msg.attach(body)
smtp = smtplib.SMTP("mailhost.example.com", 25)
smtp.sendmail(msg["From"], msg["To"].split(",") + msg["Cc"].split(","), msg.as_string())
smtp.quit()
Es erscheint OP beantwortet seine eigene Frage: sendmail braucht eine Liste.
möglich, Duplikat der gibt es eine Möglichkeit, mehrere Empfänger in Python SMTPlib?
Mit Python ist3, die ich hatte, um eine Schleife durch die Empfänger; for addr in recipients: msg['To'] = addr und dann hat es geklappt. Mehrere Aufträge tatsächlich fügt einen neuen 'In' - header für jeden. Dies ist eine sehr bizarre Oberfläche, ich kann nicht einmal erklären, wie ich dachte, es zu versuchen. Ich war sogar erwägen, mit subprocess zum Aufruf des unix - sendmail - Paket zu speichern, meinen Verstand, bevor ich dachte mir, diese.

InformationsquelleAutor user1148320 | 2012-01-13

Schreibe einen Kommentar