我刚刚遇到了一个大问题,一个年轻的 IT 人员试图告诉我如何找到他提到的电子邮件主题。这真是浪费时间。
现在我明白了,应该能够使用各种参数缩小电子邮件的范围;主题;日期;时间;收件人:字段;发件人字段;抄送字段,但是否有一个“主键”经过散列处理,例如能够发送给某人,以便他们能够找到相同的电子邮件?git 提交就是这样工作的,为什么不能发送电子邮件?如果有人指的是电子邮件,他们可以简单地向您发送哈希值,您可以以某种方式将其插入搜索字段并准确找到他们正在谈论的内容。
电子邮件中是否存在这样的功能?这就是我真正讨厌它的地方,电子邮件没有 URL。
答案1
您的帖子中有两个问题:此功能是否存在,以及此功能是否存在在 Microsoft Outlook 中。是的,它存在,但是您不能从 Outlook 中使用它。
Outlook 电子邮件或电子邮件线程是否具有可在搜索语法中使用的唯一标识符哈希?
每条消息都有一个Message-ID
标题,大多数系统(例如邮件列表存档)都会使用它来引用特定消息。通常,此 ID 由发件人的邮件应用程序分配。消息 ID 还用于合并线程;每个回复都有一个References
标题,其中列出了其父消息 ID。
Message-Id: <[email protected]>
To: "WireGuard mailing list" <[email protected]>
Subject: [ANNOUNCE] WireGuard Snapshot `0.0.20191219` Available
不幸的是,在 Outlook 中通过此 ID 搜索有点困难。但无论如何,这是那里唯一的标准身份证是用于电子邮件。
虽然消息具有唯一 ID,但线程通常没有。电子邮件没有线程作为实体 - 它只是一堆链接到其“父级”的消息(或者在 Gmail 的情况下,是一堆具有相同主题的消息)。
因此通常您只需链接到特定消息并希望邮件应用程序自动在完整线程的上下文中显示它。
外表做生成自己的Thread-Index
标头,但是不能使用它进行搜索,并且它不被任何其他电子邮件软件使用。
电子邮件中是否存在这样的功能?这就是我真正讨厌它的地方,电子邮件没有 URL。
电子邮件确实有URI(只是标识符,而不是定位器)。标准方案mid:
如下RFC 2392,并且也使用 Message-ID 作为标识符。例如:
mid:[email protected]
在其他邮件应用中,Message-ID 更易于使用 - 例如,您可以在 Gmail 中使用 ID 搜索:
rfc822msgid:[电子邮件保护]
由于这个特定示例已发布到公开存档的 Linux 邮件列表中,因此您能创建一个 URL,用于从在线档案中检索消息:
https://lkml.kernel.org/r/[email protected]
https://lore.kernel.org/wireguard/[email protected]/
还可以有其他变体。例如,如果您有一个可通过 IMAP 访问的共享邮件文件夹,则可以使用 URL imap://
(但我认为许多应用程序都不支持它)。
当然,不可能有一个适用于任何消息的通用 URL 格式,因为没有保存所有已发送电子邮件的中央数据库(“URL”中的“L”表示您需要准确指定从何处检索消息)。
git commit 这样工作,为什么不能发送电子邮件?
Git 可以使用哈希,因为 Git 提交在传输过程中不会被修改,但电子邮件消息会——电子邮件诞生的那个时代,你不能指望消息能保持原样。即使在今天,当每个人都使用 SMTP 和 MIME 时,你也会在发送方或接收方看到一些系统会添加自定义标头或编辑现有标头(如垃圾邮件过滤器等)。
因此,简单地使用 ID 比使用哈希值效果更好。例如:如果您同时向列表和私下发送同一封电子邮件,列表发送的副本通常会带有其主题前缀和附加的页脚,但它仍将具有与直接私下发送的副本相同的消息 ID。
(有些邮件程序,比如 Microsoft Outlook,会在内部将 MIME 消息拆解为各个部分,如果你要求它们重新组装以进行导出或 IMAP/POP3 访问,情况会略有不同。我认为这与 Microsoft Exchange 的 X.400 传统有关——曾经有一段时间 SMTP/MIME不是世界上唯一的邮件格式。