DMARC 和 SPF 哪个优先级更高?

DMARC 和 SPF 哪个优先级更高?

首先,我要说的是,我理解 DMARC 和 SPF不是做同样的事情。
但是两者都有一个选项可以告诉接收服务器如何处理未通过 SPF(以及 DMARC 情况下的 DKIM)的邮件。

现在让我们有一个理论案例,将 SPF 设置为v=spf1 include:… ~all(重要的部分是~all)并将 DMARC 设置为v=DMARC1; p=reject; rua=…

在这种情况下,如果我理解正确的话,我们有一个 SPF 记录告诉“将未通过 SPF 的邮件标记为垃圾邮件”和一个 DMARC 记录告诉“不接受未通过 DKIM 或 SPF 的邮件”。

当收到未通过 SPF 的邮件时,哪条指令将具有优先权?如果将 DMARC 条目设置为p=none,答案是否相同?

答案1

来自 RFC 7208:

8.5. 软失败

“软失败”结果应被视为介于“失败”和“中立”/“无”之间的某个结果。ADMD 认为主机未获得授权,但不愿意做出强有力的政策声明。接收软件不应仅根据此结果拒绝该消息,但可以对该消息进行比平常更严格的审查。

ADMD 希望阻止使用此主机,因此希望在发生“软失败”结果时提供有限的反馈。例如,收件人的 MUA 可以突出显示“软失败”状态,或者接收 MTA 可以使用灰名单 [RFC6647] 向发件人发送消息,在第一次收到消息时给出注释,但根据接收方策略在稍后的尝试中接受该消息。

这里的关键词是“不应该”,因此接收服务器可以执行其他策略且仍然符合标准。

来自 RFC 7489:

拒绝 域所有者希望邮件接收者拒绝未通过 DMARC 机制检查的电子邮件。拒绝应在 SMTP 事务期间发生。

这里的关键短语是“希望”和“应该”,因此接收服务器可以在 SMTP 交易期间强制执行其他策略并做任何他们想做的事情,同时仍然遵守策略。

我最好的猜测是,如果接收方正在强制执行 DMARC,那么这p=reject将是压倒一切的政策。

同样来自 RFC 7489 中的同一部分:

无:域名所有者请求不采取有关消息传递的任何具体行动。

此处的关键词是“请求”。实际上,这几乎总是被视为与没有 DMARC 策略相同,除了发送报告,因为此策略用于测试。

顺便提一下,您似乎对 DMARC 测试的内容存在一个常见的误解。DMARC 测试的是对齐,而不是 DKIM 或 SPF 测试的内容,因此这些测试都可以通过,而 DMARC 则失败。

相关内容