例如,如果原始消息(消息1)为...

嘿乔恩,
想去买披萨吗?
-账单

答复(消息2)是...

账单,
抱歉,我今天不能做午餐。
Jonathon Parks,CTO ACME系统

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

>嘿约翰,
>想要去买披萨吗?
> -bill

在gmail中,系统(a)检测到消息2是对消息1的答复,并将其转变为“线程”,(b)检测 在哪里 消息的回复部分实际上是,并将其隐藏在用户中。 (在这种情况下,隐藏的部分将从“ wed,2月...”开始,并继续到消息的结尾。)

显然,在这个简单的示例中,很容易检测到“u003CDate> ,,,,u003CName>写道:“或“>”字符前缀。但是许多电子邮件系统都有许多不同的标记答复样式(更不用说HTML电子邮件)。我感到您必须有一些该死的智能字符串解析算法才能到达附近的任何地方Gmail多么好。

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

谢谢。

有帮助吗?

解决方案

Zawinski在这里写了一篇很好的文章:

http://www.jwz.org/doc/threading.html

其他提示

我相信gmail有效 主题标题. 。我目前无法检查一下,但是快速更改标题可能会破坏线程。

如您提到的那样,很难预测以下内容:

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

但是抓住电子邮件标题 Pizza tomorrow 并假设一个前缀 Re: Pizza tomorrow 更具可预测性。您也可以假设 FW:RE: (在上限)。

您的意思是解决通讯员未安排的问题:或引用:标题字段?

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

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

在下面编辑以评论以评论

如果您尝试构建自己的软件,那么这个问题显然非常适合。但是,我只能给你我的2C。如果您不能依靠明确的标题,那么唯一要做的就是拿一堆邮件,请学习用来指示引号的最常见短语。 (幸运的是,有一些会议,日期格式和名称/电子邮件并非完全任意。)

如果您这样做以分析通信线程,则可能要指出关系的可能性。如果您只为了方便用户而这样做...好吧,...我的个人意见?不要对无法使用不错的邮报的人出汗。

什么样的 邮件传递代理 你正在用吗?

您在发展自己的吗?在这种情况下,您是否打算实施IMAP协议?

如果您使用的是Cyrus(或其他任何处理IMAP的产品) 排序和线程扩展, ,然后已经内置了。

在这两种情况下,您都应该看看 RFC 5256.

你可以看看sup http://freshmeat.net/articles/sup-gmail-meets-the-console 因为它几乎可以做你想要的

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top