使用Python sendmail为MIME消息设置返回路径

使用Python sendmail为MIME消息设置返回路径,python,header,mime,smtplib,return-path,Python,Header,Mime,Smtplib,Return Path,Hi想为我用Python发送的MIME消息设置“返回路径”头。 基本上,我试过这样的方法: message = MIMEMultipart() message.add_header("Return-Path", "something@something.com") #... smtplib.SMTP().sendmail(from, to, message.as_string()) 我收到的消息将其“Return Path”头设置为与“From”头相同的内容,即使我显式添加了“Return

Hi想为我用Python发送的MIME消息设置“返回路径”头。 基本上,我试过这样的方法:

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消息设置“返回路径”头


提前感谢。

返回路径由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())

这是有效的:“发件人”地址取自邮件,“返回路径”取自smtp.sendmail的“发件人”参数。我觉得很奇怪,但效率很高。谢谢,我从来没有在任何地方看到过关于这个问题的答案。请注意,“msg”可以是smtplib.sendmail可以接受的任何东西,它只需要指定一个“From”标题。如果你知道发生了什么,这并不奇怪;返回路径是中间(end?)MTA添加的标头,以反映邮件的实际发件人。错误/反弹/等应转到信封发件人,而不是发件人中的地址:。