Heim  >  Artikel  >  Backend-Entwicklung  >  Wie sende ich E-Mails mit smtplib.sendmail() von Python an mehrere Empfänger?

Wie sende ich E-Mails mit smtplib.sendmail() von Python an mehrere Empfänger?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-26 05:28:02543Durchsuche

How to Send Emails to Multiple Recipients Using Python's smtplib.sendmail()?

E-Mails an mehrere Empfänger mit Python smtplib senden

Beim Versuch, Pythons smtplib.sendmail zu verwenden, um E-Mails an mehrere Empfänger zu senden, stoßen Benutzer häufig auf Probleme. Trotz der Angabe mehrerer Adressen im E-Mail-Header erhält nur der erste Empfänger die Nachricht.

Dies ergibt sich aus einer Ungleichheit in den Formatierungserwartungen zwischen dem Modul email.Message und der Funktion smtplib.sendmail(). Das Modul email.Message akzeptiert durch Kommas getrennte E-Mail-Adressen im Header, während sendmail() eine Liste von Adressen erfordert.

Um E-Mails mithilfe von smtplib.sendmail effektiv an mehrere Empfänger zu senden, befolgen Sie diese Schritte:

  1. Erstellen Sie eine E-Mail-Nachricht mit dem Modul email.MIMEMultipart.
  2. Legen Sie die Header-Felder („Von“, „An“, „Cc“) so fest, dass sie mehrere durch Kommas getrennte E-Mail-Adressen enthalten.
  3. Setzen Sie den Parameter „An“ in der Funktion sendmail() auf eine Liste von Empfänger-E-Mail-Adressen (erhältlich durch Aufteilen des durch Kommas getrennten Header-Felds).
  4. Setzen Sie den Parameter „Von“ auf die E-Mail-Adresse des Absenders.
  5. Verfassen Sie den E-Mail-Text mithilfe des Moduls email.MIMEText. Hängen Sie den Text an die E-Mail-Nachricht an.
  6. Konfigurieren Sie eine Verbindung zu Ihrem SMTP-Server und senden Sie die E-Mail mit sendmail().

Beispielcode zum Senden einer E-Mail an mehrere Empfänger mit smtplib .sendmail:

<code class="python">from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
import smtplib

msg = MIMEMultipart()
msg["Subject"] = "Example"
msg["From"] = "sender@example.com"
msg["To"] = "recipient1@example.com,recipient2@example.com,recipient3@example.com"
msg["Cc"] = "cc1@example.com,cc2@example.com"
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()</code>

Das obige ist der detaillierte Inhalt vonWie sende ich E-Mails mit smtplib.sendmail() von Python an mehrere Empfänger?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn