首頁  >  文章  >  後端開發  >  如何使用 Python 的 smtplib 模組向多個收件者發送電子郵件?

如何使用 Python 的 smtplib 模組向多個收件者發送電子郵件?

Susan Sarandon
Susan Sarandon原創
2024-10-25 07:57:29133瀏覽

How to Send Emails to Multiple Recipients Using Python's smtplib Module?

如何使用Python 的smtplib 向多個收件者發送電子郵件

使用smtplib 模組向多個收件者發送電子郵件需要稍微調整電子郵件標頭和函數參數。

在具有多個位址的 email.Message 模組中設定「收件者」標頭時會出現問題。雖然標頭應包含以逗號分隔的電子郵件地址,但 smtplib.sendmail() 函數需要收件者清單。

要解決此問題,需要執行以下步驟:

  1. 建立使用email.Message.MIMEMultipart() 的電子郵件:
<code class="python">msg = MIMEMultipart()</code>
  1. 使用逗號分隔的電子郵件地址設定電子郵件標題:
<code class="python">msg["To"] = "[email&#160;protected],[email&#160;protected],[email&#160;protected]"</code>
  1. 為sendmail() 函數建立收件者清單:
<code class="python">to_addrs = msg["To"].split(",")</code>
  1. 將sendmail() 函數與收件者清單結合使用:
<code class="python">smtp = smtplib.SMTP("mailhost.example.com", 25)
smtp.sendmail(msg["From"], to_addrs + msg["Cc"].split(","), msg.as_string())</code>
  1. 退出SMTP 會話:
<code class="python">smtp.quit()</code>

此方法會將電子郵件傳送至「收件者」和「副本」標頭中指定的所有收件者。或者,可以使用 MIMEText() 找到更簡單的解決方案,如下所示:
<code class="python">import smtplib
from email.mime.text import MIMEText

s = smtplib.SMTP('smtp.uk.xensource.com')
s.set_debuglevel(1)
msg = MIMEText("""body""")
sender = '[email&#160;protected]'
recipients = ['[email&#160;protected]', '[email&#160;protected]']
msg['Subject'] = "subject line"
msg['From'] = sender
msg['To'] = ", ".join(recipients)
s.sendmail(sender, recipients, msg.as_string())</code>

此版本使用單一 SMTP 連線向指定收件者發送電子郵件。

以上是如何使用 Python 的 smtplib 模組向多個收件者發送電子郵件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn