邮件中的Message-ID有什么用?

问题描述 投票:0回答:3

根据我的阅读,每个消息 ID 必须是唯一的,但是如果我们强制标头具有固定值,则可以创建重复的消息 ID。所以我不明白他们说 Message-ID 应该是唯一的有什么意义,但他们很容易创建重复项。如果任何有一点阅读和基本编程知识的人都可以轻松生成它们,那么为什么存在消息 ID 以及它们的用途是什么,我可以轻松复制?

email smtp uniqueidentifier
3个回答
3
投票

简短回答:用于电子邮件客户端中的线程。

message-id
标头在RFC 2822中定义:

“消息 ID:”字段包含单个唯一的消息标识符。 “参考文献:”和“回复:”字段各自包含一个或多个 唯一的消息标识符

例如,消息 ID 用于显示哪条消息是对哪条其他消息的回复。这样,即使像

Subject
这样的其他内容没有改变,邮件客户端也可以显示电子邮件树及其回复。 (计算主题行的前导
Re:
并不是确定祖先和子代的好方法:并非每个邮件客户端都会添加它们,而且有些客户端使用特定于语言的客户端。)


2
投票

https://datatracker.ietf.org/doc/html/rfc5322#section-3.6.4

References
In-Reply-To
字段结合使用,邮件客户端使用
Message-ID
将多条消息组织到线程中。

https://en.wikipedia.org/wiki/Message-ID

并且至少有一些客户端会认为具有相同 ID 的两条消息是同一件事并丢弃其中一条。


0
投票

所以我不明白他们说 Message-ID 应该是唯一的有什么意义,但他们很容易创建重复项。

这就像编程语言一样(假设您对编程有一些基本概念):您可以在一个全局变量中存储多个不同的东西,并且可能工作,或者不会: 如果您希望您的程序可靠地工作,不要这样做!

没有全球互联网或内联网警察能够捕获此类消息,从而防止系统故障。

相反,正如其他人指出的那样,唯一 ID 是为了在许多(可能是所有)消息池中唯一标识消息。

“邮件循环预防”可能很重要的一种情况: 如果您在一秒内发送 100 条消息,并且全部使用相同的消息 ID,则接下来的 99 条消息可能会被丢弃,因为根据定义它们是“相同”消息。

© www.soinside.com 2019 - 2024. All rights reserved.