我刚遇到一个年轻的 IT 人员,他试图与我交流如何找到他所指的电子邮件线程。这是浪费时间。
现在我知道应该可以使用各种参数来缩小电子邮件的范围;主题; 日期; 时间; 到:场;来自现场;cc 字段,但是是否有一个经过哈希处理的“主键”,例如可以发送给某人,以便他们可以找到相同的电子邮件?git 提交是这样工作的,为什么不能发送电子邮件?如果有人指的是一封电子邮件,他们可以简单地将哈希发送给您,您可以以某种方式将其插入搜索字段并准确找到他们正在谈论的内容。
电子邮件中是否存在这样的功能?这就是我真正讨厌它的地方,没有电子邮件的 URL。
您的帖子中有两个问题:此功能是否存在,以及此功能是否存在于 Microsoft Outlook 中。是的,这存在,但不,您不能在 Outlook 中使用它。
每条消息都有一个
Message-ID
标题,这是大多数系统(例如邮件列表档案)用来引用特定消息的标题。通常此 ID 由发件人的邮件应用程序分配。Message-ID 也用于组合线程;每个回复都有一个References
标头,其中列出了其父消息 ID。不幸的是,在 Outlook中按此 ID 搜索有点困难。但无论如何,这是电子邮件消息的唯一标准 ID。
虽然消息具有唯一 ID,但线程通常没有。电子邮件没有线程作为实体——它只是一堆链接到其“父母”的邮件(或者在 Gmail 的情况下,是一堆具有相同主题的邮件)。
所以通常你只是链接到一个特定的消息,并希望邮件应用程序会自动在一个完整线程的上下文中显示它。
Outlook确实会生成自己的
Thread-Index
标题,但是您无法通过它进行搜索,并且任何其他电子邮件软件都不会使用它。电子邮件确实有URI(只是标识符,而不是定位器)。标准方案
mid:
符合RFC 2392,它还使用 Message-ID 作为标识符。一个例子:在其他邮件应用程序中,Message-ID 可以更易于使用 - 例如,您可以在 Gmail 中使用 ID 搜索:
由于这个特定示例已发布到一个公开存档的 Linux 邮件列表,因此您可以创建一个从在线存档中检索消息的 URL:
可以有其他变体。例如,如果您有一个可通过 IMAP 访问的共享邮件文件夹,您可能会使用
imap://
URL(但我认为很多应用程序都不支持它)。当然,不可能有一个适用于任何邮件的通用 URL 格式,因为没有包含所有已发送电子邮件的中央数据库(“URL”中的“L”意味着您需要准确指定在何处检索来自)的消息。
Git 可以使用哈希,因为 Git 提交永远不会在传输过程中被修改,但电子邮件消息却是——电子邮件来自一个你不能依赖消息准确地保持其形状的时代。即使在今天每个人都在使用 SMTP 和 MIME 时,您也会在发送端或接收端看到一些系统,这些系统将添加自定义标题或编辑现有标题(如垃圾邮件过滤器等)。
因此,简单地拥有一个 ID 比拥有一个哈希值更好。例如:如果您同时将相同的电子邮件消息发送到列表和私下发送给某人,则列表发送的副本通常会带有其主题前缀和附加页脚,但它仍将具有与直接私下相同的 Message-ID-发送副本。
(还有像 Microsoft Outlook 这样的邮件程序,它会在内部将 MIME 消息分解成各个部分,如果您要求它们重新组合以进行导出或例如 IMAP/POP3 访问,它会略有不同。我相信这与Microsoft Exchange 的 X.400 遗产——曾经有一段时间 SMTP/MIME不是世界上唯一的邮件格式。)