首页 > 后端开发 > Python教程 > 如何使用 Python 的 smtplib 模块向多个收件人发送电子邮件?

如何使用 Python 的 smtplib 模块向多个收件人发送电子邮件?

Susan Sarandon
发布: 2024-10-25 07:57:29
原创
282 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板