【发布时间】:2021-04-14 04:02:15
【问题描述】:
我正在使用 Laravel 向用户发送电子邮件。它工作正常。
所以我现在正在使用 PHP-IMAP 阅读我的收件箱以捕捉用户的电子邮件回复。
我如何识别收到的电子邮件到上一条发送的消息?
我尝试使用邮件标题:$headers->addTextHeader('X-request_id', $request->id);
标头已正确发送给用户,但在响应消息中标头不再存在。
有什么建议吗?
【问题讨论】:
我正在使用 Laravel 向用户发送电子邮件。它工作正常。
所以我现在正在使用 PHP-IMAP 阅读我的收件箱以捕捉用户的电子邮件回复。
我如何识别收到的电子邮件到上一条发送的消息?
我尝试使用邮件标题:$headers->addTextHeader('X-request_id', $request->id);
标头已正确发送给用户,但在响应消息中标头不再存在。
有什么建议吗?
【问题讨论】:
我很确定没有办法保留标题,以便在回复中返回相同的标题。
简单的解决方案: 许多错误跟踪软件系统在电子邮件的主题或文本中使用 id,例如案例编号并从主题中解析案例编号。这将在各种邮件系统垃圾邮件和病毒检查程序等中存活下来。
另一种方法是创建特定的电子邮件地址,包括每封电子邮件的电子邮件地址中的 id。但这要复杂得多。
如果您有从用户发送到用户的内部消息并且可以通过电子邮件回复,则使用类似的方式。所以 user34@users.example.com 向用户 3432@users.example.com 发送一封电子邮件,如果你想防止电子邮件泄露。 然后,您将需要 cloudmailin 之类的服务或您自己的具有必要逻辑的邮件服务器。
【讨论】:
进行回复跟踪的常规方法(在用户代理级别,不使用客户端可能无法加载的网络错误)是使用Message-ID。普通电子邮件软件将在 In-Reply-To 和 References 标头中返回 Message-ID 标头。这就是传统电子邮件软件的线程处理方式。
正如 Alex 所提到的,服务器软件使用的另一种方法是每个用户的 From 地址。如果它仍然被脚本使用,您可以使用它来关联消息。例如,reply-7abc6de7878@domain.com,但您需要配置您的电子邮件软件以接受对这些的回复。
【讨论】: