【问题标题】:Setting Return-Path with Python sendmail for a MIME message使用 Python sendmail 为 MIME 消息设置返回路径
【发布时间】:2011-03-21 04:56:28
【问题描述】:

您好,我想为我使用 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”标头?

提前致谢。

【问题讨论】:

    标签: python header mime smtplib return-path


    【解决方案1】:

    返回路径由 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”标头。
    • 如果你知道发生了什么,这并不奇怪; Return-Path 是中间(结束?)MTA 添加的标头,以反映消息的实际发送者。错误/反弹/等。应该去信封发件人,而不是发件人中的地址:。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    相关资源
    最近更新 更多