电子邮件线程中自定义标头的持久性

Wil*_*och 18 email header rfc5322

我这可能是一个奇怪的问题,但我想我会继续问问.说,我通过特殊客户端使用IMAP SMTP 发送电子邮件.此客户端在发送电子邮件之前会向电子邮件中添加一些自定义标头.收件人收到此电子邮件并直接回复我(也可能是CC的一些人).

我的问题是:鉴于上面的例子,这些X-header是否会在线程中的所有新消息中持续存在?

我能想到的一件事是客户端会知道它发送的原始电子邮件.对此电子邮件的所有后续回复都将有一个"回复"标题,其值等于上一封电子邮件的"Message-Id".在看到客户端发送的原始邮件之前,我不明白为什么我无法抓取这些回复帖子,从而导出原始的自定义标头.

也许我在想这个.有什么建议?:)

Ton*_*yer 25

消息回复不一定包含原始消息的任何内容.MUA可能建议修改(例如,前缀为"Re:")版本的原始主题,并且显然地址也用于适当的默认值.消息的其他内容都不构成答复的一部分(除非发件人故意包括它,如引用或转发).您的消息中的任何X-header肯定不会包含在回复中(除非您可以控制该MUA).

但是,您跟踪原始消息的计划当然是可行的:请参阅RFC 5322的第3.6.4节.每条消息都应该(不一定)具有Message-ID标头,并且在适当时应该具有In-Reply-To和References标头.

"Message-ID:"字段包含单个唯一的消息标识符."References:"和"In-Reply-To:"字段均包含一个或多个唯一的消息标识符,可选地由[whitespace]分隔.

提及In-Reply-To以识别正被回复的消息(或多个消息),而References标识整个会话线程.References标头旨在包含要回复的消息的References标头的全部内容,因此您只需要最后一条消息来标识整个线程.

请注意,In-Reply-ToReply-To不是一回事(后者指定发件人希望回复的地址).

假设您有原始邮件,那么您应该能够使用任何回复的引用标头来标识原始邮件.并非每个MUA都能正确处理引用或In-Reply-To,但大多数都会.


Edw*_*alk 5

据我所知,没有理由认为任何电子邮件客户端会传播它不理解的任何标题行。大多数人会保留主题(如果需要,通常会添加“Re:”)并从前一条消息的标题中派生出“收件人:”和“抄送:”行,但仅此而已。我想一些(但不是全部)会生成一个“In-Reply-To”行,但仅此而已。

您让客户端爬回线程寻找特定标题的想法听起来似乎可行,但是如果您想要该功能,则必须编写自己的电子邮件客户端,并且您仍然会被阻止并非所有电子邮件客户端都以任何方式保留消息线程这一事实。