电子邮件 headers 中的顺序是否表明分别插入了哪个 MTA?
Does order in email headers indicate which MTA inserted each?
我正在尝试分析一封邮件 header 以确定是哪个元素(MUA、MTA...)创建的。我的假设是:
- 发件人MUA组成body(包括Content-Type、Mime、Content-Transfer-Encoding),通过SMTP发送给发件人边界MTA。 MUA 提供初始 headers(发件人、收件人、Reply-To、)的信息,这些信息由此 MTA
插入
- 此 MTA 插入 MessageID 和 Return_Path(以及它需要的所有额外 header 和 X-Headers)
- 然后开始'hoping'。在每一跳上,接收 MTA 插入 'Received:' header 并且彼此 header 它认为
如果保持顺序并且每个 MTA 都将其 header 插入邮件的顶部,应该很容易确定哪个 MTA 插入了每个 header...但我不能'找不到有效方案
- DKIM-Signature、Authentication-Results、Received-SPF...等字段出现在不同的地方。哪个 MTA 创建每个?谁 DKIM-signs 电子邮件(我想这一定是发件人边界 MTA)谁验证 SPF-DKIM-DMARC?
- 添加了很多X-Headers,很多与垃圾邮件控制有关,我找不到每个创建的 MTA(on with hop)
你能帮帮我吗?
MUA(邮件用户代理,邮件客户端的 RFC 术语)将添加您在电子邮件客户端中可以看到的大部分 header,特别是 From:
和 To:
。 (您有时可以在 To:
header 中看到这一点,当某人在其地址簿中为某人使用“有趣”的昵称时。或者当“发件人:”和 SMTP 信封来自(如 MAIL FROM:
命令)不同意,即使服务器可能会拒绝此类消息,因为它通常是垃圾邮件指示器。)MUA 也会设置 Reply-To:
header,特别是如果 MUA 确实是一个客户管理系统. MTA(邮件传输代理,实际的 SMTP 服务器)可能包含退回信息 (VERP)。
MUA 然后将邮件提交给 MTA。每个接触电子邮件的程序(邮件服务器、防火墙等)都可以添加 headers。例如,MTA 通常会进行 DKIM 签名(并添加相关的 headers)。它 must 前置 Received:
header(即,将其放在顶部)并且它 不能 与其他 Received:
header秒。仍然有一些程序(如防火墙)可能会干扰 headers。
您可以看到多个 DKIM 签名(参见 DKIM selectors),例如,当电子邮件在邮件列表的上下文中被重新发送时。您可以看到从原始发件人到列表的 DKIM 签名,然后在邮件列表服务器将其发送给最终收件人时,更多 header 包括额外的 DKIM header。
至于 X-...
headers:这些是 non-standard headers(因此有 X-
前缀)。一切都在这里。一些发送 MTA 将它们插入用于跟踪目的(例如,在他们的客户中捕获垃圾邮件发送者),一些邮件接收者将他们的垃圾邮件评估放在一个特殊的 x-header 中。甚至 MUA 也可能会在电子邮件中放入一些 x-header,例如,Claws Mail 会在邮件来自的帐户、下载邮件的时间等中放入 header。您可能信任也可能不信任这些,事实上,MUA 可能有设置来指示他们应该信任哪些 x-header。
就此而言,即使是身份验证结果 header 等也可能在路上的任何地方出现。即使是最初的发件人也可以添加一个,就像一些反病毒程序所做的那样,以表明他们扫描了外发邮件。同样,由接收方决定是否信任这些 header。很明显,您希望离您最近的邮件服务器进行 DKIM 检查和任何与身份验证相关的操作,因为您可以相信该服务器的判断。
那么,顺序是否表明哪个邮寄者插入了 header?是的,但是...邮件服务器可能符合也可能不符合 RFC 的所有部分,许多邮件服务器遵循 Postel's law 并且在他们接受的内容上有些宽松。
我正在尝试分析一封邮件 header 以确定是哪个元素(MUA、MTA...)创建的。我的假设是:
- 发件人MUA组成body(包括Content-Type、Mime、Content-Transfer-Encoding),通过SMTP发送给发件人边界MTA。 MUA 提供初始 headers(发件人、收件人、Reply-To、)的信息,这些信息由此 MTA 插入
- 此 MTA 插入 MessageID 和 Return_Path(以及它需要的所有额外 header 和 X-Headers)
- 然后开始'hoping'。在每一跳上,接收 MTA 插入 'Received:' header 并且彼此 header 它认为
如果保持顺序并且每个 MTA 都将其 header 插入邮件的顶部,应该很容易确定哪个 MTA 插入了每个 header...但我不能'找不到有效方案
- DKIM-Signature、Authentication-Results、Received-SPF...等字段出现在不同的地方。哪个 MTA 创建每个?谁 DKIM-signs 电子邮件(我想这一定是发件人边界 MTA)谁验证 SPF-DKIM-DMARC?
- 添加了很多X-Headers,很多与垃圾邮件控制有关,我找不到每个创建的 MTA(on with hop)
你能帮帮我吗?
MUA(邮件用户代理,邮件客户端的 RFC 术语)将添加您在电子邮件客户端中可以看到的大部分 header,特别是 From:
和 To:
。 (您有时可以在 To:
header 中看到这一点,当某人在其地址簿中为某人使用“有趣”的昵称时。或者当“发件人:”和 SMTP 信封来自(如 MAIL FROM:
命令)不同意,即使服务器可能会拒绝此类消息,因为它通常是垃圾邮件指示器。)MUA 也会设置 Reply-To:
header,特别是如果 MUA 确实是一个客户管理系统. MTA(邮件传输代理,实际的 SMTP 服务器)可能包含退回信息 (VERP)。
MUA 然后将邮件提交给 MTA。每个接触电子邮件的程序(邮件服务器、防火墙等)都可以添加 headers。例如,MTA 通常会进行 DKIM 签名(并添加相关的 headers)。它 must 前置 Received:
header(即,将其放在顶部)并且它 不能 与其他 Received:
header秒。仍然有一些程序(如防火墙)可能会干扰 headers。
您可以看到多个 DKIM 签名(参见 DKIM selectors),例如,当电子邮件在邮件列表的上下文中被重新发送时。您可以看到从原始发件人到列表的 DKIM 签名,然后在邮件列表服务器将其发送给最终收件人时,更多 header 包括额外的 DKIM header。
至于 X-...
headers:这些是 non-standard headers(因此有 X-
前缀)。一切都在这里。一些发送 MTA 将它们插入用于跟踪目的(例如,在他们的客户中捕获垃圾邮件发送者),一些邮件接收者将他们的垃圾邮件评估放在一个特殊的 x-header 中。甚至 MUA 也可能会在电子邮件中放入一些 x-header,例如,Claws Mail 会在邮件来自的帐户、下载邮件的时间等中放入 header。您可能信任也可能不信任这些,事实上,MUA 可能有设置来指示他们应该信任哪些 x-header。
就此而言,即使是身份验证结果 header 等也可能在路上的任何地方出现。即使是最初的发件人也可以添加一个,就像一些反病毒程序所做的那样,以表明他们扫描了外发邮件。同样,由接收方决定是否信任这些 header。很明显,您希望离您最近的邮件服务器进行 DKIM 检查和任何与身份验证相关的操作,因为您可以相信该服务器的判断。
那么,顺序是否表明哪个邮寄者插入了 header?是的,但是...邮件服务器可能符合也可能不符合 RFC 的所有部分,许多邮件服务器遵循 Postel's law 并且在他们接受的内容上有些宽松。