我想知道Gmail之后的算法来检索相关的邮件。
我正在考虑两个人,汤姆和约翰。汤姆已经开始和约翰谈话了。
注:这是汤姆和约翰寄来的一些邮件的代表。
(J-mail-1) : John's first mail.
(T-mail-1) : Tom's first mail.
(T-mail-2) : Tom's second mail.
(J-mail-2) : John's second mail.
(J-mail-3) : John's third mail.现在,如果我们在Tom's Gmail的收件箱中看到,我们可以发现John的第一封邮件的回复是与Tom的第一封和最后一封邮件相关联或映射的。
因此,我想知道在服务器端执行上述类型操作的算法是什么。这是如何正确地映射。
以上场景的最终结果。(在汤姆的收件箱中)
(T-mail-1) ::::(Associated/Mapped) ::::: (J-mail-1) and (J-mail-2)
(T-mail-2) :::: (Associated/Mapped) ::::: (J-mail-3)谢谢
发布于 2020-05-25 16:46:44
不知道Google到底做了什么但是..。
RFC 2822 (以及其他许多)定义了电子邮件。每封电子邮件都应该有一个消息ID,在Message-ID:头中传递。当您回复电子邮件时,邮件客户端应该包含一个In-Reply-To:头,其值为您回复的消息的消息id (第3.6.4节)。现在,在收件箱中,查看每封电子邮件,检查它是否有一个In-Reply-To:头,并查找带有该ID的电子邮件,这将是它的父邮件。
一些延迟的电子邮件客户支持系统可能会丢弃In-reply-to:头。第二个最佳猜测是,您可以查看电子邮件的Subject:头,并使用正则表达式查看两封电子邮件是否来自同一会话:如果它们仅在"Re:“前缀中不同,则它们可能在同一个会话中。数一下"Re:“前缀,比较时间戳,找出对话顺序。
https://stackoverflow.com/questions/62004978
复制相似问题