Roh*_*ala 4 python smtplib receiver python-3.7
我已经浏览了很多 SO 帖子和 smtplib 文档,一切似乎都是正确的,但邮件仅发送给列表中的第一个收件人
注意:我使用的是Python3.7,我也尝试过Python 2.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()
Run Code Online (Sandbox Code Playgroud)
代替
sever.sendmail(sender, receiver, msg.as_string())
Run Code Online (Sandbox Code Playgroud)
使用
server.send_message(msg)
Run Code Online (Sandbox Code Playgroud)
SMTP.send_message()是发送 email.message.Message 对象的方法,它将使用 Message 对象中指定的发送者和接收者。在您的情况下,这将是变量 msg (MIMEText 是 Message 的子类)。
不知道为什么,我在使用的时候也遇到了类似的问题。可能是因为 to_addrs 被指定了两次,因为 as_string() 将其添加到消息正文中,以后会发生什么我不知道。
SMTP.sendmail()中的 to_addrs被描述为:“将此邮件发送到的地址列表。裸字符串将被视为具有 1 个地址的列表。”,所以这很好。