"Message ID"邮件头对于每个收件人是唯一的吗?

53

电子邮件的邮件ID头信息有多独一无二?如果我把邮件发给两个人,他们会拥有相同的邮件ID吗?还是会不同?

(前提是没有任何有意搞恶作剧的情况下。我知道垃圾邮件的规则都不适用...)

3个回答

52
根据RFC2822 - 互联网消息格式,简短的回答是"每个消息实例的消息ID应该是唯一的";但是,MESSAGE-ID字段被认为是可选的,MESSAGE-ID字段的创建方式取决于服务器。如下所述:

"Message-ID:"字段提供了一个唯一的消息标识符,它指向特定消息的特定版本。消息标识符的唯一性由生成它的主机保证(见下文)。这个消息标识符旨在供机器阅读,不一定对人类有意义。消息标识符与特定消息的一个实例相关联;对消息进行的后续修改都会获得新的消息标识符。注意:当消息被“更改”时,有许多情况下,这些更改并不构成该消息的新实例,因此该消息不会获得新的消息标识符。例如,当消息被引入传输系统时,它们通常会添加额外的头字段,例如跟踪字段(第3.6.7节中描述)和重新发送字段(第3.6.6节中描述)。添加这样的头字段不会更改消息的标识,因此保留原始的"Message-ID:"字段。在所有情况下,决定"Message-ID:"字段是否更改的是消息发送者希望传达的含义(即这是否是相同的消息或不同的消息),而不是出现在消息中的任何特定语法差异(或不出现)。


11
你说的每个“实例”,是指每个收件人都会有不同的消息ID吗? - james.garriss
@james.garriss:如果你在收件人或抄送人头部包含某个人,那么他们“预期”会收到相同的消息。如果你将某人作为密送,则可以说这不是这种情况。我希望所有被收件人/抄送人都能收到相同的消息ID,如果没有,我认为这是一个错误。就密送而言,我还没有明确的看法。 - jmoreno
Gmail为所有收件人(包括密送)分配相同的消息ID。 - John

18

通常情况下,所有收件人都会收到完全相同的消息,包括正文和标题,除了在传输过程中添加的标题(例如:“Received”标题)之外。Message-ID标题由发件人生成,因此所有收件人应该看到相同的Message-ID。


2
如果您订阅了两个列表,并且有人跨越发布单个消息,则可能会收到具有一个Message-ID的两条消息。一些电子邮件客户端将显示两者。更高级的客户端,如Apple Mail,旨在将一条消息的多个副本显示为一条。 - Graham Perrin
2
是的,RFC可以去死了...人们真正想要的是每个消息一个ID,而不是每个实例一个ID。 - Erik Aronesty
这可能是真的,但发送者没有生成Message-ID的要求,而且通常他们不会这样做(例如,大多数Web应用程序都不会)。在大多数情况下,Message-ID由消息通过的第一个MTA生成。此外,在现代追踪可交付性等方面的时代,为每个发出的电子邮件生成唯一的发件人地址非常普遍,以帮助确定与任何可能发生的退信相关联的收件人,或标识为垃圾邮件(出现在DSPAM报告中)等。 - mc0e

4

对于批量邮件,最好为每个邮件设置唯一标识符,因为垃圾邮件通知或退信可能只会返回消息ID作为唯一信息,所以每个消息的ID应该是唯一的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接