0

我有一个发送电子邮件的 python 脚本。电子邮件正在发送,没有任何问题。

但是,当我收到邮件并打开它们时,它们的“收件人:”字段不会显示收件人。它只是空白。我想显示所有收件人。而且由于我没有在我的脚本中使用任何“密件抄送”配置,我对这怎么可能感到困惑。

这是我正在使用的代码:

#!/usr/bin/env python

you = [ "MyEmail1@MyEmail.com", "MyEmail2@MyEmail.com" ]
for eachrecord in fformatErrMessage:
    # Preparing all variables #
    msg = MIMEMultipart()
    msg['Subject'] = subjectMsg
    part1 = MIMEText(text, 'plain')
    part2 = MIMEText(html, 'html')
    msg.attach(part1)
    msg.attach(part2)
    s = smtplib.SMTP('localhost')
    s.sendmail(me, you, msg.as_string())
    s.quit()

我尝试将您替换为:

you = "MyEmail1@MyEmail.com"

想也许清单是问题所在 - 但那没有用。

4

1 回答 1

2

发送电子邮件时,服务器不查看 To:-Field。相反,电子邮件服务器有一种单独的方式来传输收件人地址,有时称为“信封”,用于路由和传递邮件。客户端永远不会收到该信封,而是使用消息头中的 To:-字段。

sendmail() 调用只是设置 SMTP 信封的地址。如果您希望 To:-field 显示在邮件本身中,您必须设置适当的标题:

msg['To'] = "foo@bar.com"

顺便说一句,这就是密件抄送的工作方式:信封上的地址根本不会在邮件标题中重复。

于 2019-05-29T14:57:03.587 回答