我正在尝试编写一个邮件客户端,该邮件客户端在邮件中发送并读取传入的邮件。我的Google努力并没有产生结果。
在发送邮件时,是否有一种方法可以将标签(用于标识)连接到邮件信封(主题除外),以便当对同一邮件进行答复时,代码可以识别?
仅供引用,我正在使用 java 邮件组件编写客户端。
提前致谢..
最佳答案
正如 Bill Shannon 指出的那样,回复中不会包含任意消息 header 。实际上,回复中的主题可能基本相似。它通常是原始消息主题的前缀版本(例如,带有“Re:”)。用户当然可以编辑主题,而损坏的邮件程序可能会做出各种疯狂的事情。
您应该能够通过使用回复中的 References
header 将消息回复与原始消息相关联。此 header 应该包含RFC 2822 ,作为其最后一个元素,是正在回复的消息的消息 ID。从理论上讲,您甚至可以跟踪多个回复回到原始消息,因为 References
应该建立起来,这样您就可以从消息 ID 列表构建整个线程。
也就是说,当你发送你的原始消息时,你应该有一个字段:
Message-ID: <unique-message-id>
在回复中,您应该看到:
References: <unique-message-id>
如果出于某种原因,您希望使用不同于消息 ID 的不同唯一 ID 进行跟踪,您也可以将其放入您的引用列表:
Message-ID: <unique-message-id>
References: <other-id>
在回复中,您应该看到:
References: <other-id> <unique-message-id>
请注意,我重复说了“应该”。此行为仅在 RFC2822 中进行了编码,References
header 的行为在原始 RFC822 中定义不当。 .虽然(大概)大多数邮件客户端都遵循 RFC2822,但您可以看到 jwz 解释的关于 threading algorithm in Netscape's mail reader 的警告列表(希望大部分已过时)。 .
关于java - 当有人回复同一邮件时,可以在发送电子邮件时将标签附加到电子邮件上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9470553/