获取邮件应用程序以识别回复电子邮件php

jao*_*jao 4 php email-headers

我无法弄清楚如何获取邮件应用程序(谷歌邮件除外)以识别电子邮件是作为"回复"发送的,并将这些电子邮件组合在一起作为发送和回复电子邮件的列表.

例如,使用php,如果我使用

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

$to = "email@mail.com";

$message = "This is a reply";
$subject = "test 123";  
$success = mail($to, $subject, $message, $header);
Run Code Online (Sandbox Code Playgroud)


并发送两次,我收到两封单独的电子邮件.而不是由两封电子邮件组成的一封电子邮件.
有没有办法将它们组合在一起,因为一封电子邮件回复给另一封电子邮件,或者我做错了什么?
我已经阅读了php mail()文档和多个网页,解释了php邮件是如何工作的,仍然无法让电子邮件相互回复.

感谢您的时间和帮助!

Mic*_*ski 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
Run Code Online (Sandbox Code Playgroud)

第二条消息:

// 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;
Run Code Online (Sandbox Code Playgroud)