如何使用 Python 的 smtplib 向多个收件人发送电子邮件
使用 smtplib 模块向多个收件人发送电子邮件需要稍微调整电子邮件标头和函数参数。
在具有多个地址的 email.Message 模块中设置“收件人”标头时会出现问题。虽然标头应包含以逗号分隔的电子邮件地址,但 smtplib.sendmail() 函数需要收件人列表。
要解决此问题,需要执行以下步骤:
<code class="python">msg = MIMEMultipart()</code>
<code class="python">msg["To"] = "[email protected],[email protected],[email protected]"</code>
<code class="python">to_addrs = msg["To"].split(",")</code>
<code class="python">smtp = smtplib.SMTP("mailhost.example.com", 25) smtp.sendmail(msg["From"], to_addrs + msg["Cc"].split(","), msg.as_string())</code>
<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 protected]' recipients = ['[email protected]', '[email protected]'] msg['Subject'] = "subject line" msg['From'] = sender msg['To'] = ", ".join(recipients) s.sendmail(sender, recipients, msg.as_string())</code>
此版本使用单个 SMTP 连接向指定收件人发送电子邮件。
以上是如何使用 Python 的 smtplib 模块向多个收件人发送电子邮件?的详细内容。更多信息请关注PHP中文网其他相关文章!