繁体   English   中英

email 标头中的顺序是否指示每个插入的 MTA?

[英]Does order in email headers indicate which MTA inserted each?

我正在尝试分析邮件 header 以找出每个元素(MUA,MTA ...)创建的。 我的假设是:

  • 发送方 MUA 组成正文(包括 Content-Type、Mime、Content-Transfer-Encoding),并通过 SMTP 发送到发送方边界 MTA。 MUA 为由该 MTA 插入的初始标头(From、To、Reply-To、)提供信息
  • 此 MTA 插入 MessageID 和 Return_Path(以及它需要的所有额外标头和 X-标头)
  • 然后它开始“希望”。 在每一跳上,接收 MTA 插入 'Received:' header 和它认为的其他 header

如果保持顺序并且每个 MTA 在消息的顶部插入其标题,则应该很容易确定哪个 MTA 插入了每个 header...但我找不到有效的方案

  • DKIM-Signature、Authentication-Results、Received-SPF...等字段出现在不同的位置。 哪个 MTA 创建了每个? 谁对 email 进行 DKIM 签名(我想它必须是发件人边界 MTA)谁对 SPF-DKIM-DMARC 进行身份验证?
  • 添加了很多 X-Headers,其中很多与垃圾邮件控制有关,我找不到每个创建的 MTA(on with hop)

请问你能帮帮我吗?

MUA(邮件用户代理,邮件客户端的 RFC 术语)将添加您可以在 email 客户端中看到的大多数标头,特别是From:To: (您有时可以在To: header 中看到这一点,当某人在他们的通讯录中有“有趣”的昵称时。或者当“发件人:”和 SMTP 信封来自(如在MAIL FROM:命令中)不同意时,即使服务器可能将拒绝此类消息,因为它通常是垃圾邮件指示器。) MUA 还将设置Reply-To: header,尤其是如果 MUA 确实是一个客户管理系统。 MTA(邮件传输代理,实际 SMTP 服务器)可能包含退回信息 ( VERP )。

然后 MUA 将消息提交给 MTA。 每个触及 email 的程序(邮件服务器、防火墙等)都可以添加标头。 例如,MTA 通常会进行 DKIM 签名(并添加相关的标头)。 必须Received: header 前面添加(即放在顶部),并且不能与其他Received:标题混淆。 还有一些程序,如防火墙,可能会弄乱标头。

您可以看到多个 DKIM 签名(请参阅DKIM 选择器),例如,当 email 在邮件列表的上下文中重新发送时。 当邮件列表服务器将其发送给最终收件人时,您可以看到从原始发件人到列表的 DKIM 签名,然后是更多标头,包括额外的 DKIM header。

至于X-...标头:这些是非标准标头(因此是X-前缀)。 一切都在这里了。 一些发送 MTA 将它们插入用于跟踪目的(例如,在他们的客户中捕获垃圾邮件发送者),一些邮件接收者将他们的垃圾邮件评估放在一个特殊的 x-header 中。 甚至 MUA 也可能会在电子邮件中添加一些 x 标头,例如,Claws Mail 会为邮件来自的帐户、下载邮件的时间等输入 header。 您可能信任也可能不信任这些,事实上,MUA 可能具有指示它们应该信任哪些 x-header 的设置。

在这方面,即使是身份验证结果 header 等也可以在路上的任何地方形成。 甚至最初的发件人也可以像某些防病毒程序那样添加一个,以表明他们扫描了外发邮件。 同样,由接收者决定是否信任这些标头。 显然,您希望离您最近的邮件服务器进行 DKIM 检查以及与身份验证相关的任何事情,因为您可以相信该服务器的判断。

那么,订单是否表明哪个邮件程序插入了 header? 是的,但是... 邮件服务器可能符合也可能不符合 RFC 的所有部分,并且许多邮件服务器遵循Postel 法律,并且在接受的内容上有些宽容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM