我正在尝试将变量to
(具有电子邮件ID)附加到msg["To"]
并将电子邮件发送到此列表。没有错误或任何内容,但电子邮件未发送。只要我从to
中删除msg["To"]
变量,就会成功发送电子邮件。我哪里错了?
def email (body,subject,to):
msg = MIMEText("%s" % body)
msg["Content-Type"] = "text/html"
msg["From"] = "service@company.com"
msg["To"] = to + "username@company.com"
msg["Subject"] = '%s' % subject
p = Popen(["/usr/sbin/sendmail", "-t"], stdin=PIPE)
p.communicate(msg.as_string())
答案 0 :(得分:3)
问题在于,如果你有一个电子邮件地址,那么追加一个就可以一起运行它们。
to = "address1@example.com"
msg["To"] = to + "address2@example.com"
print msg["To"]
>>> address1@example.comaddress2@example.com
毋庸置疑,address1@example.comaddress2@example.com
不是有效的电子邮件地址,任何MTA都会对其进行禁止。
根据RFC 822及其后续版本,MTA期望地址之间使用逗号,所以:
msg["To"] = to + ", address2@example.com"
应该有用。
答案 1 :(得分:2)
添加到= to.strip()修复它..