如何解决关于缺少引用和回复标题时的电子邮件线程问题
我试图在 SO 和网络上搜索类似的问题,但没有找到。
tl;dr:当同时引用和引用时,线程逻辑中会发生什么? 回复中的标头不可用(缺失/空)?是否有可能 电子邮件服务提供商将这些标题添加到选择性 消息,而不是全部?
背景:
我知道引用标头包含消息 ID 的面包屑路径,并且回复标头指向链表/线程中的直接节点。
但是,当引用和回复中的标头都不可用(缺失/空)时,线程逻辑中会发生什么? 就我而言,我看到不相关的消息最终出现在同一线程中。例如,
Message 1
in-reply-to: <350576222@ip-xxx-xx-x-72.eu-west-1.compute.internal>
references: <350576222@ip-xxx-xx-x-72.eu-west-1.compute.internal>
message-id: <trinity-d2cd4e72-@app-gmx-bap21>
Message 2 - no in-reply-to,and references headers
message-id: <2E0FA10B@icloud.com>
至少从标题没有相关性,但这两个最终在同一个线程中。唯一的共同元素是主题行,并且在两者中都与根消息保持不变。具有相同主题行并包含引用和回复中的标题的所有其他消息都有自己的单独线程。
环境:
我使用的是共享收件箱工具 (FrontApp) 和基于同步的 GMail,无论如何都不是我自己的代码。该工具有自己的“重复数据删除”逻辑,但我不知道它是否会修改/删除标头。根消息始终从我们的系统发送 - Java Mail 通过 GMail SMTP,并包含用于内部审核的 BCC 字段。
此外,如果有帮助,我发现这主要发生在消息 1 来自 GMail/Yahoo 帐户,而消息 2 来自 web.de 或 gmx.de 帐户的情况下。
是否所有来自 gmx 和 web de 的电子邮件都缺少这些标题/为空?不,我有一些包含这些标题的 gmx 和 web de 电子邮件的证据,并且它们完全存在于各自的线程中,没有冲突问题。
另一个关键是,这个问题不存在于 GMail 本身,当我登录帐户并查看这些邮件时,它们在各自的线程中(每个都有自己的 google thread_id)。
解决方法
References 和 In-Reply-To 标头遵循 RFC 2822 标准。
如果提供。但是,您不需要提供这些参数来创建消息线程。
线程需要的是
-
subject
需要匹配 - 需要在
threadId
中提供Request body
(但在raw
正文之外)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。