如何使用 Python 的 smtplib.sendmail() 向多位收件者傳送電子郵件?

Mary-Kate Olsen
發布: 2024-10-26 05:28:02
原創
552 人瀏覽過

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

使用Python smtplib 向多個收件人發送電子郵件

當嘗試使用Python 的smtplib.sendmail 向多個收件人發送電子郵件時,使用者經常會遇到問題。儘管在電子郵件標頭中指定了多個位址,但只有第一個收件者收到訊息。

這是由於 email.Message 模組和 smtplib.sendmail() 函數之間的格式期望差異造成的。 email.Message 模組接受標頭中以逗號分隔的電子郵件地址,而 sendmail() 則需要地址清單。

要使用 smtplib.sendmail 有效地將電子郵件發送給多個收件人,請按照以下步驟操作:

  1. 使用 email.MIMEMultipart 模組建立電子郵件。
  2. 設定標頭欄位(「寄件者」、「收件者」、「副本」)以包含多個電子郵件地址,以逗號分隔。
  3. 將 sendmail() 函數中的「To」參數設定為收件者電子郵件地址清單(可透過拆分逗號分隔的標頭欄位來取得)。
  4. 將「From」參數設定為寄件者的電子郵件地址。
  5. 使用 email.MIMEText 模組撰寫電子郵件正文。將正文附加到電子郵件中。
  6. 設定與 SMTP 伺服器的連線並使用 sendmail() 傳送電子郵件。

使用 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>
登入後複製

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!