我这可能是一个奇怪的问题,但我想我会继续问。比如说,我通过一个特殊的客户端使用 IMAP SMTP 发送一封电子邮件。此客户端在发送电子邮件之前向电子邮件添加了一些自定义 header 。收件人收到这封电子邮件并直接回复我(可能还有 CC 的几个人)。
我的问题是:鉴于上述示例,这些 X-headers 是否会在线程中的所有新消息中持续存在?
我能想到的一件事是客户会知道它发送的原始电子邮件。对此电子邮件的所有后续响应都将具有一个“Reply-To” header ,其值等于上一封电子邮件的“Message-Id”。我不明白为什么我无法抓取这些回复线程,直到我得到客户端发送的原始消息,从而派生出原始的自定义 header 。
也许我在想这个。有什么建议么? :)
最佳答案
消息回复不一定包含原始消息的任何内容。 MUA 可能会建议原始主题的修改(例如,以“Re:”开头)版本,并且显然地址也用于适当的默认值。消息的其他内容都不构成回复的一部分(除非发件人故意包含它,如引用或转发)。您在消息中的任何 X- header 肯定不会包含在回复中(除非您可以控制该 MUA)。
但是,您跟踪原始消息的计划当然是可行的:参见 RFC 5322 的第 3.6.4 节。 .每条消息都应该(不是必须)有一个 Message-ID header ,并且在适当的时候应该有 In-Reply-To 和 References header 。
The "Message-ID:" field contains a single unique message identifier. The "References:" and "In-Reply-To:" fields each contain one or more unique message identifiers, optionally separated by [whitespace].
提及 In-Reply-To 以标识正在回复的消息(或消息),而 References 标识整个对话线程。 References header 旨在包含要回复的消息的 References header 的全部内容,因此您只需要最后一条消息即可识别整个线程。
请注意 回复 和 回复 不是同一件事(后者指定了发件人希望将回复发送到的地址)。
假设您有原始消息,那么您应该能够使用任何回复的 References header 来识别原始消息。并非每个 MUA 都会正确处理引用或回复,但大多数都会正确处理。
关于email - 电子邮件线程中自定义标题的持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7591557/