所有电子邮件客户端都使用电子邮件标题中的“In-Reply-To”字段吗?

时间:2017-08-15 09:40:21

标签: email outlook gmail email-client email-headers

当使用Message-ID标头发送任何电子邮件时,对其的任何回复都包括In-Reply-To命名,ID和引用可以命名父消息ID列表,电子邮件客户端使用此信息构造线程在线程视图中查看电子邮件列表时。

我的问题是:所有电子邮件客户端(Outlook,Gmail,Exchange等)是否在向任何现有电子邮件发送回复时在电子邮件标题中附加In-Reply-To字段?

我提到了RFC 2822,但它说In-Reply-To字段是可选的。

Though optional, every message SHOULD have a "Message-ID:" field.
Furthermore, reply messages SHOULD have "In-Reply-To:"

In-Reply-To电子邮件标题示例:

第一封电子邮件:

Message-ID <foobar-1234-0@server.com>
In-Reply-To: not provided
References: not provided

第二封电子邮件:

Message-ID <foobar-1234-1@server.com>
In-Reply-To: <foobar-1234-0@server.com>
References: <foobar-1234-0@server.com>

第三封电子邮件:

Message-ID <foobar-1234-2@server.com>
In-Reply-To: <foobar-1234-1@server.com>
References: <foobar-1234-0@server.com> <foobar-1234-1@server.com>

1 个答案:

答案 0 :(得分:1)

艾莉亚是正确的。我已经看到,大多数电子邮件客户端/服务器使用In-Reply-To(或更常见的是References)标头。不过,RFC 2822标准(如您所指出的)不是 要求。

围绕此/有几种方法可以使用它。您可以从电子邮件中提取的信息越多,它越有可能进入正确的电子邮件链。我试图优先考虑这种匹配,并尝试了如下操作:

  • 如果电子邮件中包含“ In-Reply-To”标题,请将其添加到“引用”列表中
  • 使用“引用”(如果存在)来匹配其他电子邮件的消息ID(在您使用的任何系统/代码中)
  • 如果交换的电子邮件具有特定的参考号,例如[ref:XXXXXXXXX:ref](Salesforce缺省将电子邮件格式设置为Case格式),则可以进行检查。缺点是,客户/代理商可以将其删除。