是否有一个 Java 库可以获取一封电子邮件,将其与电子邮件数据库进行比较,并找到可能来自与邮寄列表类似的电子邮件的同一“线程”的其他电子邮件?
最佳答案
可能没有我所知道的库,但您可以通过查看电子邮件中的 header 值来做到这一点。当有人回复邮件时,电子邮件中有几个标题。以下是讨论的 header 。
消息 ID 每封电子邮件都带有一个 Message-ID 标题,这是一个全局唯一的垃圾字符串。有时它是一个 GUID,但大多数时候它是 GUID + 域的某种组合。格式无关紧要,它只是一些独特的字符串。
在回复中 In-Reply-To 保存邮件 ID 的值,在该邮件中回复此邮件。
引用资料 可能包含从当前消息回到线程开始的链中所有消息的消息 ID 列表。如果线程很长,这个列表可以在中间缩写,但第一条和最后一条消息应该始终存在。 (较旧的邮件软件使用此字段来标识当前邮件所指的其他邮件。)
Outlook 使用 Thread-Index,其中包含单个线程中的所有电子邮件。
您可以使用良好的旧 JavaMail 获取这些 header ,因此以这种方式重建线程应该不会太难。不幸的是,没有像 Thread-Index 这样的标准 header
http://people.dsv.su.se/~jpalme/ietf/message-threading.html
Thread-index 上的 StackoverFlow 帖子
关于用于按线程将电子邮件分组在一起的 Java 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2330011/