2010-07-26 61 views
3

您好想爲我用Python發送的MIME郵件設置「Return-Path」標頭。 基本上,我想是這樣的:使用Python sendmail設置MIME郵件的返回路徑

message = MIMEMultipart() 
message.add_header("Return-Path", "[email protected]") 
#... 

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

我收到的消息有其「返回路徑」頭設置爲相同的內容爲「從」一個,即使我明確地添加「返回路徑」頭。

如何在Python中通過smtplib的sendmail發送的MIME消息設置「Return-Path」標題?

在此先感謝。

回答

2

Return-Path由SMTP協議設置,它不是從消息本身派生的。這將是Envelope From地址是大多數設置。

達到這一目的的正確方法是:

msg = email.message_from_string('\n'.join([ 
    'To: [email protected]', 
    'From: [email protected]', 
    'Subject: test email', 
    '', 
    'Just testing' 
])) 
smtp = smtplib.SMTP() 
smtp.connect() 
smtp.sendmail('[email protected]', '[email protected]', msg.as_string()) 
+1

這個作品:「發件人」地址是從消息採取和「返回路徑」摘自「從」 smtp.sendmail的說法。對我來說很奇怪,但效率很高。感謝你,我從來沒有在任何地方看到過答案。 – Pierre 2010-07-28 10:25:59

+0

注意「msg」可以是smtplib.sendmail可以接受的任何內容,只需指定「From」標題即可。 – Pierre 2010-07-28 10:27:26

+0

如果你知道發生了什麼,這並不奇怪; Return-Path是由中間(end?)MTA添加的頭部,以反映消息的實際發送者。錯誤/反彈/等。應該去信封發件人,而不是From:中的地址。 – MikeyB 2010-07-28 14:02:10

相關問題