ホームページ  >  記事  >  バックエンド開発  >  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 モジュールの "To" ヘッダーに複数のアドレスを設定するときに発生します。ヘッダーにはカンマ区切りの電子メール アドレスが含まれている必要がありますが、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>

この方法では、「To」ヘッダーと「Cc」ヘッダーで指定されたすべての受信者に電子メールが送信されます。あるいは、以下に示すように、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。