Python 3.7 smtplib sendmail只发送给列表中的第一个收件人



我浏览了许多SO帖子和smtplib文档,一切似乎都是正确的,但邮件只发送给列表中的第一个收件人

注意:我使用的是Python3.7,我也尝试过Python2.6,在下面的情况下,邮件只发送给接收者中的第一个收件人

以下是我的代码:

import smtplib
from email.mime.text import MIMEText

sender='from@domain.com'
receiver=['email1@domain.com', 'email2@domain.com', 'email3@domain.com']
msg = MIMEText("message")
msg['Subject'] = "Test Email"
msg['From'] = sender
msg['To'] = ",".join(receiver)
server = smtplib.SMTP("smtp.domain", 25)
sever.sendmail(sender, receiver, msg.as_string())
server.quit()

而不是

sever.sendmail(sender, receiver, msg.as_string())

使用

server.send_message(msg)

SMTP.send_message((是一种发送email.message.message对象的方法,该对象将使用message对象中指定的发送方和接收方。在您的情况下,这将是变量msg(MIMEText是Message的子类(。

我不知道为什么,我在用你的方式使用它时也遇到了类似的问题。可能是因为to_addrs是在as_string((将其添加到消息正文时指定的两次,所以我不知道以后会发生什么。

在SMTP.sendmail((中的to_addrs被描述为:";要将此邮件发送到的地址列表。空字符串将被视为具有1个地址的列表&";,所以这很好。

相关内容

  • 没有找到相关文章

最新更新