送达报告的消息 ID 等于原始邮件

送达报告的消息 ID 等于原始邮件

我发现传递状态报告具有与原始邮件相同的消息 ID。

以下为交付报告全文:

传入 DSN 消息:

From: Mail Delivery Subsystem <[email protected]>
To: [email protected]
Subject: DELAY:     ********************************************** 
Message-ID: <[email protected]>
...

    **********************************************
    **      THIS IS A WARNING MESSAGE ONLY      **
    **  YOU DO NOT NEED TO RESEND YOUR MESSAGE  **
    **********************************************

The original message was received at Wed, 23 Mar 2016 14:36:53 +0100
from [x.x.x.x]

   ----- Transcript of session follows -----
[email protected]... Deferred: Connection timed out with gmail.de.
Warning: message still undelivered after 4 hours
Will keep trying until message is 4 days old

对应的外发原始邮件:

From: [email protected]
Message-ID: <[email protected]>

我无法从退回邮件维基百科页面

这个有什么规范吗,或者这只是特定邮件服务器处理这个问题的方式?

答案1

我刚刚检查了一封退回的电子邮件和最初发送的电子邮件。

原始消息具有 Message-ID 标头,其值类似于:

Message-ID: <XYZ@mydomain>

退回的邮件在标头中的两个地方引用了此 ID:

References: <....>, <XYZ@mydomain>
In-Reply-To: <XYZ@mydomain>

另外,在附件的 details.txt 中我看到:

X-Original-Message-ID: <XYZ@mydomain>

退回邮件中的消息 ID 具有不同的 ID,其中包含邮件服务器的域:

Message-ID: <ABC@mailserverdomain>

总之,您所遇到的问题可能与您的设置有关。由于邮件 ID 可以识别每封邮件,因此如果将来某个时间需要重试,那么对于该特定邮件服务器来说,用自己的副本替换失败的邮件是没有意义的。

答案2

DSN 本身就是一条消息。因此,它的通用标头定义在RFC822 4.6

此字段包含一个唯一标识符(本地部分地址单元),该标识符引用此消息的此版本。
消息标识符的唯一性由生成它的主机保证。此标识符旨在供机器读取,不一定对人类有意义。消息标识符只与特定消息的一个实例有关;消息的后续修订应分别接收新的消息标识符。

最好在 REFERENCES 和 IN-REPLY-TO 标头中包含原始消息 ID(请参阅 RFC822 的同一部分,并且还建议RFC3834 3.1.6这并不直接适用于 DSN,但也可以考虑,只要它不与RFC3461)也可以使用通用扩展头 X-ORIGINAL-MESSAGE-IDRFC3464 2.4.
如果生成系统选择不想/不需要为消息生成唯一消息,则它应该省略该可选标头并且不复制原始消息的唯一 ID。

DSN 特定的原始邮件的消息 ID 可以/应作为默认/当发件人未另行请求时包含在多部分/报告传递状态邮件的第三部分中。认为 MUA 与信封 ID 一起工作以将 DSN 连接到邮件。RFC3464 2 RFC3461 4.3 RFC3462

答案3

消息 ID 是消息的唯一 ID。因此,在报告该消息的状态时必须使用它。这不是消息传递代理用来传递消息的 ID(如果有)。您的邮件阅读器可能会使用它来将消息与任何状态消息分组。

在回复消息时可以使用附加标题,以便将电子邮件对话收集到一个线程中。

相关内容