4

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

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

回复(消息2)是......

比尔,
对不起,我今天不能做午饭。
Jonathon Parks,Acme Systems 首席技术官

2010 年 2 月 24 日,星期三,下午 4:43,Bill Waters 写道:

> 嘿,约翰,
> 想去买披萨吗?
> -比尔

在 Gmail 中,系统 (a) 检测到消息 2 是对消息 1 的回复,并将其转换为某种“线程”,并且 (b) 检测消息的回复部分实际在哪里,并将其对用户隐藏。(在这种情况下,隐藏部分将从“On Wed, Feb...”开始,一直持续到消息的末尾。)

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

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

谢谢。

4

5 回答 5

2

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

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

于 2010-07-15T00:18:17.840 回答
0

我相信 Gmail 按主题标题工作。我目前无法检查它,但快速更改标题可能会破坏线程。

正如您所提到的,以下内容很难预测:

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

但是抓住电子邮件标题Pizza tomorrow并假设前缀Re: Pizza tomorrow是相当可预测的。您还可以假设FW:RE:(大写)的情况。

于 2010-03-08T14:47:48.413 回答
0

您的意思是解决通讯者未设置 In-Reply-To: 或 References: 标头字段的问题吗?

否则,您可能会使用 mutt 并将其配置为默认不显示引号。

(也应该由地球上的任何其他邮件工具完成。(嗯,我从来没有在 Outlook 中获得树线程视图。)

[在下面编辑以回应评论]

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

如果您这样做是为了分析通信线程,您可能希望指出关系的可能性。如果您只是为了方便用户而这样做......好吧,......我的个人意见?不要为无法使用像样的邮件工具的人而烦恼。

于 2010-03-18T16:02:12.013 回答
0

您使用的是哪种邮件递送代理?

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

如果您使用带有SORT 和 THREAD 扩展的 Cyrus(或任何其他处理 IMAP 的产品) ,那么它已经内置。

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

于 2010-05-31T16:27:49.997 回答
-1

您可以查看 sup http://freshmeat.net/articles/sup-gmail-meets-the-console,因为它几乎可以满足您的需求

于 2010-08-13T16:59:54.283 回答