【问题标题】:Send email to multiple addresses (using cc) from different domains将电子邮件发送到来自不同域的多个地址(使用 cc)
【发布时间】: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() 显示了其他标头(例如 BccSenderResent-*)如何与 smtplib.sendmail() 一起使用。

标签: python email python-2.7 smtplib


【解决方案1】:

改变这一行

server.sendmail("me@mydomain.com", toEmails+ccEmails, msg.as_string()) 

【讨论】:

  • 不会通过CC发送电子邮件..只会将电子邮件发送到使用TO的所有地址
  • 您试过了吗,MIMEText 会将所有详细信息添加为电子邮件标题,我相信 smtp 会根据电子邮件标题决定发送电子邮件,但您必须在 sendmail 中包含所有电子邮件
  • +1。 @BeNdErR 这是complete code example
猜你喜欢
  • 1970-01-01
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 2017-04-02
  • 2020-12-20
  • 2018-01-08
相关资源
最近更新 更多