电子邮件标题字段'thread-index'如何工作?

Tim*_*Tim 35 email

我想知道是否有人知道电子邮件标题中的线程索引字段是如何工作的?

这是我给自己发送的一个简单的电子邮件索引链.

Email 1 Thread-Index: AcqvbpKt7QRrdlwaRBKmERImIT9IDg==
Email 2 Thread-Index: AcqvbpjOf+21hsPgR4qZeVu9O988Eg==
Email 3 Thread-Index: Acqvbp3C811djHLbQ9eTGDmyBL925w==
Email 4 Thread-Index: AcqvbqMuifoc5OztR7ei1BLNqFSVvw==
Email 5 Thread-Index: AcqvbqfdWWuz4UwLS7arQJX7/XeUvg==
Run Code Online (Sandbox Code Playgroud)

我似乎无法确定如何将这些电子邮件链接在一起.通常,我会使用in-reply-to字段或引用字段,但我最近发现Blackberrys不包含这些字段.唯一包括Thread-Index字段.

Ale*_*lli 19

有一个很好的分析,这个非标准的"线程索引"标题似乎在这篇文章和链接中使用,包括这篇pdf(CEAS 2006会议上提交的论文)和后续内容,其中包括来自evolution源代码的问题评论(这似乎反映了这个未记录的标题的实质性逆向工程).

内容提要:从本质上讲,笔者最终放弃使用这种头和建议,并显示不同的方法,这也是在实现c-client库中,部分UW IMAP工具包开放源代码包(这是不是对IMAP -唐"让这个名字欺骗你,它也适用于POP,NNTP,本地邮箱,&c).


poi*_*n42 18

它们是base64编码的对话索引值.无需对Microsoft进行逆向工程,例如http://msdn.microsoft.com/en-us/library/ms528174(v=exchg.10).aspx和更详细的http:// msdn. microsoft.com/en-us/library/ee202481(v=exchg.80).aspx

看似示例中的索引不代表同一个对话,这可能意味着发送邮件的软件无法将它们链接在一起.

编辑:不幸的是我没有足够的声誉来添加评论,但adamo是正确的,它包含一个时间戳 - 一个有点深奥的编码部分FILETIME.但它也包含一个GUID,所以对于那个邮件来说它是独一无二的(当然同一个邮件可以存在多个副本).


Sté*_*hen 5

如果有邮件客户端无法将 Blackberry 的邮件链接到他们的线程,我不会感到惊讶。该Thread-Index头似乎是一个Microsoft扩展。

无论哪种方式,Novell Evolution 都会实现这一点。看看他们如何做的这个简短描述,或者这段代码找到给定消息的线程父级。

我假设,因为Thread-Index您示例中标题的长度都相同,所以这些消息都是线程开始的?奇怪的是,它们只有 22 字节,但我想您可以尝试将每条消息 5 字节的规则应用于它们,看看它是否适合您。