2009-08-05 149 views
136

我們的郵件應用中,我們用下面的頭髮送電子郵件:return-path,reply-to和from之間的行爲差​​異是什麼?

FROM: [email protected] 
TO: [email protected] 
Return-PATH: [email protected] 

,我們所面臨的問題是,一些電子郵件服務器會立即反彈回來的消息,並使用來自或反向路徑(市場@客戶.com)而不是我們的反彈mgmt服務器。我們想要知道,如果我們能夠捕捉到所有的反彈,我們是否在標題中修改了回覆 - 與返回路徑相同。

歡迎任何其他想法?

我們正在使用下列文件作爲參考: VERP RFC Bounce Messages

SMTP Log Parsing to get Bounces

編輯1:信息的幾個位,看看我們是否能得到這個決心。

我們想知道中繼郵件的電子郵件服務器將選擇使用回覆路徑還是回傳路徑。我們已經注意到,當中繼郵件的第一臺smtp服務器被拒絕時,它會將它發送給應答,但是當它發生在一跳後發送它到返回路徑。

+1

那麼指定Sender:和Precedence:fields?我想知道更多關於它們如何影響不同的郵件服務器的問題,以及反彈和不在辦公室類型的自動答覆。任何人? – PapaFreud 2011-12-16 09:36:35

+0

https://www.postmastery.com/blog/about-the-return-path-header/ – 2018-02-13 12:03:10

回答

213

我們從一個簡單的例子開始。假設您有一個電子郵件列表,它將發送以下RFC2822內容。

From: <[email protected]> 
To: <[email protected]> 
Subject: Super simple email 
Reply-To: <[email protected]> 

This is a very simple body. 

現在,讓我們說你打算從一個郵件列表,實現VERP(或使用不同的返回路徑其它一些反彈跟蹤機制)發送。假設它將有一個[email protected]m的返回路徑。 SMTP會話可能類似於:凡分別

{S}220 workstation1 Microsoft ESMTP MAIL Service 
{C}HELO workstation1 
{S}250 workstation1 Hello [127.0.0.1] 
{C}MAIL FROM:<[email protected]> 
{S}250 2.1.0 [email protected] OK 
{C}RCPT TO:<[email protected]> 
{S}250 2.1.5 [email protected] 
{C}DATA 
{S}354 Start mail input; end with <CRLF>.<CRLF> 
{C}From: <[email protected]> 
To: <[email protected]> 
Subject: Super simple email 
Reply-To: <[email protected]> 

This is a very simple body. 
. 

{S}250 Queued mail for delivery 
{C}QUIT 
{S}221 Service closing transmission channel 

{C}和{S}表示客戶端和服務器的命令。

收件人的郵件看起來像:

Return-Path: [email protected] 
From: <[email protected]> 
To: <[email protected]> 
Subject: Super simple email 
Reply-To: <[email protected]> 

This is a very simple body. 

現在,讓我們來描述不同 「FROM」 S。

  1. 的返回路徑(有時稱爲反向路徑或信封-FROM - 所有這些術語可以互換使用的)是在SMTP會話期間使用的值。如您所見,這不需要與郵件標題中實際發現的值相同。只有收件人的郵件服務器應該在電子郵件的頂部添加一個Return-Path標頭。這會在SMTP會話期間記錄實際的Return-Path發件人。如果電子郵件中已經存在Return-Path標題,則該標題將被刪除,並由收件人的郵件服務器取代。

    SMTP會話期間發生的所有反彈都應回到Return-Path值。某些服務器可能會接受所有電子郵件,然後將其排在本地,直到它有一個空閒線程將其傳送到收件人的郵箱。如果收件人不存在,它應該將其退回到記錄的Return-Path值。

    請注意,並非所有郵件服務器都遵守此規則。一些郵件服務器會將其退回到FROM地址。

  2. 的FROM地址是在實際中發現FROM首部的值。這應該是消息來自誰的信息。這就是你在大多數郵件客戶端看到的「FROM」。如果電子郵件沒有回覆標題,則所有人類(郵件客戶端)回覆應回到FROM地址。

  3. 的回覆-To報頭由發送者(或發送者的軟件)加入。這也是所有人類答覆都應該解決的地方。基本上,當用戶點擊「回覆」時,回覆值應該是用作新組合電子郵件的值的值。 Reply-To值不應該被任何服務器使用。它意味着供客戶端使用。

    然而,正如你所知道的,不是所有的郵件服務器遵守RFC標準或建議。

希望這應該有助於清除事情。但是,如果我錯過了任何東西,請告訴我,我會盡力回答。

+0

這是非常有幫助的。謝謝你的時間。一個問題。有可能會發生一些反彈,而不是返回路徑? – Geo 2009-08-12 14:19:04

+0

Hi Geo, 是的。完全有可能。這裏有很多破損的SMTP服務器,或者至少有不同的解釋規則。 乾杯! 戴夫 – 2009-08-12 17:08:03

+0

Thx的偉大的解釋。關於返回路徑的一個問題:我是否理解當郵件離開我的SMTP(作爲郵件的發送者)時,實際上還沒有定義任何返回路徑?只有收件人的郵件服務器添加郵件的返回路徑嗎? – sl3dg3 2012-01-12 13:05:15

115

另一種方式來思考Return-Path VS Reply-To是把它比作蝸牛郵件。

當您在郵件中發送信封時,您指定一個返回地址。如果收件人不存在或拒絕您的郵件,郵局主管將信封退回到退回地址。對於電子郵件,返回地址Return-Path

信封裏面可能是一封信,裏面的信件可能會指示收件人「發送信件至示例地址」。對於電子郵件,示例地址Reply-To

實質上,郵資退貨地址與SMTP的Return-Path標題相當,SMTP的Reply-To標題與信件中包含的回覆說明類似。

+11

這是一個很好的比喻。 – 2013-04-18 07:58:30

+0

@Jesse Hobart +1對於很好的解釋,我更加困惑謝謝你讓我更容易理解。 – Abhishek 2014-01-31 12:23:05

+9

我想指出的是,這個類比中沒有捕獲到的主要概念是'Return-Path'頭由**接收**郵件服務器添加,而***沒有*由發送者**添加。所以更多的是這樣的:你可以在信封裏寫上你想要的任何地址,但是要發送它,你必須把它帶到郵局,並向他們展示你的駕照(或其他ID),並且*他們*信封發送之前。換句話說,「Return-Path」頭部與接收SMTP服務器執行的檢查一樣可信,其中其他人可能很容易被欺騙。 – cdhowie 2015-06-15 20:32:25

1

我不得不添加一個返回路徑頭在電子郵件中由管理平臺的實例發送。 我同意偉人只有發件人可以確定一個正確的(非默認)返回路徑。 的情況如下: 電子郵件與默認的電子郵件地址發送:[email protected] 但是,我們希望,真正的用戶發起的動作收到電子郵件反彈,因爲他將是一個知道如何解決錯誤的收件人電子郵件(而不是有其他貓鞭打的應用程序管理員:-))。 我們使用它,它可以很好地與應用程序服務器和zimbra作爲最終的公司郵件服務器進行操作。

4

對於那些誰到這兒,因爲問題的標題:

我用Reply-To:地址與網絡表單。當有人填寫表格時,網頁會向該頁面的所有者發送自動電子郵件。 From:是自動郵件發件人的地址,所以所有者知道它來自webform。但Reply-To:地址是用戶在表單中填寫的地址,所以業主可以打回復聯繫他們。