首页 > 解决方案 > DKIM 是否验证 smtp/envelope-from 或邮件/标头来自?

问题描述

我想了解用于验证电子邮件的 SPF/DKIM/DMARC 堆栈。

我了解 SPF 适用于 SMTP“邮件发件人”/信封发件人。

但即使在 stackoverflow 本身上,我也发现关于 DKIM 是否适用于信封发件人或实际 SMTP Payload/Email/Header-From 的相互矛盾的信息。

标签: emailspfdkimdmarc

解决方案


简短的回答...

SPF根据发送 IP 地址验证信封,DKIM验证消息有效负载,DMARC将两者联系在一起,并在任一失败时指示所需的处理。


更长的答案...

DKIM使用私钥应用于发送服务器上的创作消息,然后由接收服务器使用公钥通过DNS进行验证。

DKIM 规范允许签名者选择他们签署的标头字段,但必须始终对From:字段以及正文的指定长度(可能为零)进行签名,因此作者可能随心所欲地包括正文和/或消息有效负载末尾的附件。

DKIM 独立于 SMTP 路由,因为它对RFC 5322消息(即传输的邮件的标头和正文)而不是RFC 5321中定义的 SMTP 信封进行操作。因此,DKIM 签名可以在多个 MTA 之间进行基本中继。

DKIM 允许签名者 以严格或宽松的方式传达其认为合法的电子邮件内容。通过这种方式,签名者可以保证一些关键内容,同时允许对空白和标题包装进行简单的重写。它不会直接阻止或披露企图滥用,但可以由接收服务器以取证方式使用,以在签名者允许的范围内验证内容。


SPF在 DNS 中发布,并由接收服务器进行测试。

SPF 规范允许域的 DNS 保证允许/禁止哪些发送 IP 和其他解析为 IP 的机制成为该域的电子邮件发送源。它仅针对RFC 5321中定义的 SMTP 信封进行测试,使用MAIL FROMHELO值。


DMARC是在 DNS 中为域发布的策略,并由接收服务器验证。

它允许发送域通过来自合规接收服务器的报告监控滥用情况,并指示应如何处理任何 SPF 或 DKIM 故障。此外,它可用于对齐在 SPF 和 DKIM 中找到的域,并用于在 SPF 和 DKIM 都通过但使用不同域时识别滥用。


推荐阅读