Email 是否有任何开源工具可以自动';检测';像Gmail那样的电子邮件线程?

Email 是否有任何开源工具可以自动';检测';像Gmail那样的电子邮件线程?,email,open-source,gmail,email-parsing,email-threading,Email,Open Source,Gmail,Email Parsing,Email Threading,例如,如果原始消息(消息1)是 嗨,乔恩, 想去吃比萨饼吗? -账单 回复(信息2)是 比尔, 对不起,我今天不能做午饭。 乔纳森公园,首席技术官Acme系统 2010年2月24日星期三下午4:43,比尔·沃特斯写道: >嘿,约翰, >想去吃比萨饼吗? >-比尔 在Gmail中,系统(a)检测到消息2是对消息1的回复,并将其转换为某种“线程”;以及(b)检测消息的回复部分的实际位置并向用户隐藏。(在这种情况下,隐藏部分将从“2月3日星期三”开始,并继续到消息的结尾。) 显然,在这个简单的示例中,

例如,如果原始消息(消息1)是

嗨,乔恩,
想去吃比萨饼吗?
-账单

回复(信息2)是

比尔,
对不起,我今天不能做午饭。
乔纳森公园,首席技术官Acme系统

2010年2月24日星期三下午4:43,比尔·沃特斯写道:

>嘿,约翰,
>想去吃比萨饼吗?
>-比尔

在Gmail中,系统(a)检测到消息2是对消息1的回复,并将其转换为某种“线程”;以及(b)检测消息的回复部分的实际位置并向用户隐藏。(在这种情况下,隐藏部分将从“2月3日星期三”开始,并继续到消息的结尾。)

显然,在这个简单的示例中,很容易检测到“On,write:”或“>”字符前缀。但是许多电子邮件系统有许多不同的标记回复的风格(更不用说HTML电子邮件了)。我有种感觉,你必须有一些该死的智能字符串解析算法才能接近GMail有多好

这项技术是否已经存在于某个开源项目中?或者在专门用于此功能的库中,或者在进行类似消息线程处理的开源电子邮件客户端中


谢谢。

我相信Gmail是通过主题标题来工作的。我现在无法检查,但是快速更改标题可能会破坏线程

正如你所提到的,以下情况很难预测:

On Wed, Feb 24, 2010 at 4:43 PM, Bill Waters wrote:

但是,获取电子邮件标题
Pizza-tomory
并假设前缀为
Re:Pizza-tomory
更容易预测。您还可以假设
FW:
RE:
(大写)。

您的意思是解决通讯员在回复:或引用:标题字段中未设置的问题吗

否则,您可以使用mutt并将其配置为默认情况下不显示引号

(也应该由地球上的任何其他邮件工具来完成。)

[根据评论编辑如下]

如果你尝试构建自己的软件,那么这个问题显然很适合。但是,我只能给你我的2c。如果你不能依赖显式标题,那么唯一要做的就是接收一堆邮件,学习最常用的短语来表示引用。(幸运的是,有一些约定,日期格式和姓名/电子邮件并不是完全任意的。)

如果您这样做是为了分析通信线程,那么您可能希望指出这种关系的可能性。如果您这样做只是为了方便用户……嗯……我个人的意见?不要担心人们无法使用一个像样的邮件工具。

您使用的是哪种类型的邮件工具

您是否正在开发自己的?在这种情况下,您是否计划实施IMAP协议

如果您正在使用Cyrus(或任何其他处理IMAP的产品),那么它已经内置了


在这两种情况下,您都应该看看。

这里有一篇Zawinski写的好文章:


你可以看看sup,因为它几乎可以满足你的需求

可能的解决方案哇,经过更多的搜索,我想我可能已经在这些线程中找到了我想要的:stackoverflow.com/questions/262234/algorithm-for-organization-emails-into-threads stackoverflow.com/questions/1966937/email-threading…参考a讨论“In Reply To”(回复)标题,以及用于执行我所说内容的算法,以及该算法的ruby实现。允许并鼓励回答您自己的问题。请随意回答。:)你见过Jamie的objective-c实现吗?只是回答我自己的评论。我发现该算法的c实现是开源电子邮件客户端的一部分(仅在linux上运行。但这不适用于mac用户)。我正在开发一个软件工具,其中包括将需要获取大量原始电子邮件,并使用任何可能的信息从邮件中构建一个“树”或“线程”结构。我只是在学习RFC822电子邮件中的回复:和引用:标题。看起来我将使用这些数据,但在某些情况下它们可能会丢失,所以我可能正在寻找一些确定“什么是对什么的反应”的启发式驱动方法。