【发布时间】:2014-02-20 12:20:43
【问题描述】:
我制作了一个使用 smtplib 发送电子邮件的小 Python 脚本。
例如,我有一封电子邮件需要发送给 n 个用户(通过To: 字段),但我还需要将此电子邮件发送给 m其他用户,通过Cc: 字段。
显然,那些 n + m 电子邮件地址来自不同的域(@mydomain、@gmail、@hotmail、@whatever)。如果我将电子邮件地址放在 To: 字段中,电子邮件将正确发送到每个地址,但如果我将电子邮件放在 Cc: 字段中,则不会发生同样的事情......
例如
FROM: me@mydomain.com
TO: alice@mydomain.com, bob@gmail.com, mallory@hotmail.com
CC: john@mydomain.com, robert@yahoo.com, clara@gmail.com
请注意,电子邮件是使用@mydomain.com 帐户发送的。 TO: 列表中的地址正确接收电子邮件,而CC: 列表中只有 john@mydomain.com 可以收到电子邮件。.
似乎CC 字段仅适用于 same-domain-email...有什么想法吗?
不管怎样,这是代码:
msg = MIMEText(mailContent)
msg["Subject"] = "This is the subject"
msg["From"] = "me@mydomain.com"
toEmails = ["alice@mydomain.com", "bob@gmail.com", "mallory@hotmail.com"]
ccEmails = ["john@mydomain.com", "robert@yahoo.com", "clara@gmail.com"]
msg["To"] = ",".join(toEmails)
msg["Cc"] = ",".join(ccEmails)
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login("me@mydomain.com", "password")
server.sendmail("me@mydomain.com", toEmails, msg.as_string())
server.quit()
谢谢
【问题讨论】:
-
您正在连接到 google 的 smtp 服务器。你检查他们有什么限制吗?尝试任何其他 smtp 服务器。
-
其实我用的是google的smtp,因为
mydomain是google创建的业务域.. -
相关:
smtplib.send_message()显示了其他标头(例如Bcc、Sender、Resent-*)如何与smtplib.sendmail()一起使用。
标签: python email python-2.7 smtplib