我想了解用于验证电子邮件的SPF / DKIM / DMARC堆栈。
我知道SPF适用于来自" / envelope-from的SMTP"邮件。
但即使在stackoverflow本身,我发现有关DKIM是否在信封上工作或实际SMTP Payload / Email / Header-From的相互矛盾的信息。
答案 0 :(得分:1)
简短回答......
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 FROM 或 HELO 值。
DMARC 是DNS在域中发布的策略,由接收服务器验证。
它允许发送域通过来自兼容接收服务器的报告监视滥用,并指示应如何处理任何SPF或DKIM故障。此外,它可用于对齐在SPF和DKIM中找到的域,并用于在SPF和DKIM通过时识别滥用,但每个域使用不同的域。