使用Python sendmail为MIME消息设置Return-Path

4 投票
1 回答
5858 浏览
提问于 2025-04-16 01:51

你好,我想为我用Python发送的MIME消息设置“Return-Path”头部。基本上,我尝试了这样的代码:

message = MIMEMultipart()
message.add_header("Return-Path", "something@something.com")
#...

smtplib.SMTP().sendmail(from, to, message.as_string())

但是我收到的消息中,“Return-Path”头部的内容和“From”头部是一样的,即使我明确添加了“Return-Path”头部。

我该如何在Python中通过smtplib的sendmail设置MIME消息的“Return-Path”头部呢?

提前谢谢你。

1 个回答

4

Return-Path是由SMTP协议设置的,它不是从邮件内容中得出的。在大多数情况下,它会是信封中的发件人地址。

正确的做法是:

msg = email.message_from_string('\n'.join([
    'To: michael@mydomain.com',
    'From: michael@mydomain.com',
    'Subject: test email',
    '',
    'Just testing'
]))
smtp = smtplib.SMTP()
smtp.connect()
smtp.sendmail('something@something.com', 'michael@mydomain.com', msg.as_string())

撰写回答