2011-12-03 41 views
4

我無法弄清楚如何讓郵件應用程序(除谷歌郵件)認識到電子郵件是作爲「回覆」發送的並具有這些電子郵件分組在一起作爲發送和回覆的電子郵件列表。
獲取郵件應用程序以識別答覆電子郵件php

例如,使用PHP,如果我用

$header = "From: Testing <[email protected]>\r\n" . 
       "Reply-To: [email protected]\r\n" . 
       "X-Mailer: PHP/" . phpversion(); 

$to = "[email protected]"; 

$message = "This is a reply"; 
$subject = "test 123"; 
$success = mail($to, $subject, $message, $header); 


,並將其發送兩次,我得到兩個獨立的電子郵件。而不是由兩封電子郵件組成的一封電子郵件。
有沒有辦法讓他們在一起回覆給另一個郵件,或者我做錯了什麼?
我已經閱讀了PHP郵件()文檔和多個網頁,解釋瞭如何PHP郵件工作,仍然無法獲得電子郵件回覆對方。

謝謝你的時間和幫助!

回答

7

大多數郵件客戶端通過檢查Message-ID,In-Reply-ToReferences標頭來處理線程。在您的第一條消息中,設置一個Message-ID標頭,然後使用與ReferencesIn-Reply-To標頭相同的值。郵件客戶端應通過放置原始Message-ID並將其與具有相關ReferencesIn-Reply-To標頭的郵件進行匹配來對它們進行分組。

第一消息:

// Create a unique value for message id based on time, random value, and the hostname 
$message_id = md5(time() . rand()) . $_SERVER['HTTP_HOST']; 
Message-Id: $message_id 

第二消息:

// Use the same value as these two headers. 
References: $message_id 
In-Reply-To: $message_id 
// Also, you should set a new unique message-id for this one 
$new_message_id = md5(time() . rand()) . $_SERVER['HTTP_HOST']; 
Message-ID: $new_message_id; 
1

我在這裏看不到問題。兩封電子郵件發送了兩封收到的電子郵件。這是預期的行爲。 GMail將它們組合在用戶界面的一個線程中,但在引擎蓋下,即使GMail將它們視爲兩個單獨的消息。這完全獨立於Reply-To標題。

2

回覆標題用於表示回覆應發送到不同於發件人標題中的電子郵件地址。

我認爲,如果郵件正文的一部分包含的文本是之前發送或回覆的郵件的一部分,或者如果主題包含Re:並且與另一組郵件中的主題相匹配,Google會採用算法將郵件分組在一起。但回覆標題可能不會將郵件分組爲回覆。

相關問題