【问题标题】:Do all email clients use "In-Reply-To" field in email header?是否所有电子邮件客户端都在电子邮件标题中使用“In-Reply-To”字段?
【发布时间】:2018-01-23 05:25:21
【问题描述】:

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

我的问题是:是否所有电子邮件客户端(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>

【问题讨论】:

  • 我的猜测是“否”,因为我偶尔会收到不包含“In-Reply-To”标题的其他人的电子邮件回复。因此,我的电子邮件客户端将他们的电子邮件作为“新”接收,并没有添加到任何可能存在的正在进行的线程中。

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


【解决方案1】:

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

有几种方法可以解决这个问题。您可以从电子邮件中提取的越多,它就越有可能进入正确的电子邮件链。我尝试优先考虑这种匹配,并尝试了以下方法:

  • 如果电子邮件有 In-Reply-To 标头,请将其添加到参考列表中
  • 使用引用(如果存在)来匹配其他电子邮件的消息 ID(在您正在使用的任何系统/代码中)
  • 如果交换的电子邮件具有特定的参考编号,例如 [ref: XXXXXXXXX :ref](Salesforce 默认将电子邮件格式化为这样的案例),您可以检查它。缺点是,客户/代理可以删除它。

【讨论】:

  • "如果交换的电子邮件有特定的参考编号,例如 [ref: XXXXXXXXX :ref]" 将在电子邮件的哪个部分指定?主题?还是那是另一个标题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-13
  • 2014-08-23
  • 2013-12-17
  • 1970-01-01
  • 2018-08-23
  • 2017-04-01
  • 2014-05-02
相关资源
最近更新 更多