如何在imaplib中使用线程搜索方法?
我想做一个Gmail客户端,能够把邮件以对话(线程)的方式展示。在imaplib这个库里,有一个方法:IMAP4.thread(threading_algorithm, charset, search_criterion[, ...])。我觉得这个方法可能是解决方案。有没有人用过这个?能给个例子吗?谢谢。
2 个回答
0
据我所知,Gmail使用的是一种私有算法,这个算法在相关的标准文档中并没有说明。
他们会结合一些邮件的头信息(比如“回复给”和“引用”这些字段),还会考虑邮件的主题(不过考虑的方式和THREAD=references不太一样)。
1
这个方法其实就是对IMAP4rev1扩展的THREAD命令的一个封装。你可以看看这个链接,里面详细描述了这个IMAP命令是怎么工作的:https://www.rfc-editor.org/rfc/rfc5256
不过,我不太确定Gmail是否真的实现了THREAD命令。如果它实现了,应该会在它的功能列表中显示'THREAD='。