发送电子邮件后如何获取 SMTP headers?
How can I fetch the SMTP headers after sending email?
我可以使用 smtplib
轻松发送电子邮件。我正在努力阅读发送的实际 headers。具体来说,我想阅读 Message-ID
和 References
。
起初我以为 sendmail()
会 return 他们,但事实并非如此。
发现我能够将 smtpilb.stderr
重定向到我自己的函数并解析出我需要的数据。有没有更好的方法可以让我说:
headers['References']
如果您使用 sendmail()
,我不确定如何访问 headers,因为在那种情况下您没有 Message
object。但是,如果您改用 send_message
- 这与 sendmail()
非常相似 - 并向其传递 email.message.Message
object,则所有电子邮件消息 headers 和它们的值存储在 Message
object 的字典中。因此,例如,Message-ID 可以从电子邮件 object msg
和 msg['Message-ID']
访问,主题可以使用 msg['Subject']
等访问。我不认为任何东西都将存储在 message-id
中,除非你自己把它放在那里。您可以 'roll your own' Message-ID 使用 make_msgid()
来自 email.utils
:
from email.utils import make_msgid
msg['Message-ID'] = make_msgid()
我可以使用 smtplib
轻松发送电子邮件。我正在努力阅读发送的实际 headers。具体来说,我想阅读 Message-ID
和 References
。
起初我以为 sendmail()
会 return 他们,但事实并非如此。
发现我能够将 smtpilb.stderr
重定向到我自己的函数并解析出我需要的数据。有没有更好的方法可以让我说:
headers['References']
如果您使用 sendmail()
,我不确定如何访问 headers,因为在那种情况下您没有 Message
object。但是,如果您改用 send_message
- 这与 sendmail()
非常相似 - 并向其传递 email.message.Message
object,则所有电子邮件消息 headers 和它们的值存储在 Message
object 的字典中。因此,例如,Message-ID 可以从电子邮件 object msg
和 msg['Message-ID']
访问,主题可以使用 msg['Subject']
等访问。我不认为任何东西都将存储在 message-id
中,除非你自己把它放在那里。您可以 'roll your own' Message-ID 使用 make_msgid()
来自 email.utils
:
from email.utils import make_msgid
msg['Message-ID'] = make_msgid()