1

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

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

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

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

请问你能帮帮我吗?

4

1 回答 1

1

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

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

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

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

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

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

于 2020-08-13T22:01:28.527 回答