用于按线程将电子邮件分组在一起的 Java 库?

标签 java email

是否有一个 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 帖子

How does the email header field 'thread-index' work?

关于用于按线程将电子邮件分组在一起的 Java 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2330011/

相关文章:

Java - 基本绘制图像

php - Apple Mail 不显示使用 Zend_Mail 发送的 PDF

php - 如何从 PHP 获取电子邮件及其附件

excel - 使用 Excel VBA 将 Excel 工作簿中的 OLEObject 内容放入 Outlook 电子邮件正文

ruby - 在应用程序中接收和处理电子邮件

HTML 电子邮件 – 为什么在使用 Outlook 2010 打开邮件时某些元素不显示?

java - Hibernate 一对多更新一个 child

java - Java 连接池

java - Windows Server 2008 上的 64 位 Java 8 或多或少使用整个服务器 CPU

java - Elasticsearch中的字符串字典范围查询