我设置了以下 DMARC 记录:
v=DMARC1;p=无;rua=mailto:[电子邮件保护]; ruf=邮箱:[电子邮件保护];sp=无;fo=0:1:d:s
我设置了以下 SPF 记录:
v=spf1 mx-全部
MX记录有3个IP地址。
MX 记录中的一个 IP 地址用于发送电子邮件。其中大多数电子邮件与 DMARC 的匹配情况良好(上个月,有 312k 封电子邮件匹配)。但是,同一 IP 地址也显示了一些失败报告(700 封电子邮件未通过 DMARC)。
当我查看原因时,它显示“mail.mydomain.com”——未设置 SPF。
我的 DMARC 记录设置为宽松模式(来自子域的电子邮件通过 DMARC 检查)。
这些电子邮件失败的原因可能是什么?我该如何避免这种情况?我应该在 mail.mydomain.com 子域下添加 SPF 记录吗?
答案1
envelope.from
(又名bounce address
或return-path
或)中的电子邮件地址smtp.mailfrom
设置为使用 的电子邮件域mail.mydomain.com
。如果没有SPF
为 设定记录mail.mydomain.com
,则会返回所述错误。
或者:字段中没有指定地址envelope.from
,导致HELO
查找发送服务器的主机名。
这种行为很可能是由于您的服务器将邮件退回给原始发件人而导致的。在这种情况下,通常envelope.from
会删除原始地址并检查电子邮件服务器的主机名以查找SPF
记录。
SPF
最后一种情况可以通过设置邮件服务器与之建立通信的名称记录(HELO
名称)轻松解决。 在你的情况下可能mail.mydomain.com
。
有关执行哪些检查以及有关HELO
检查的更多信息,请参阅有关 SPF 的 RFC,第 2.3 和 2.4 节。
答案2
我是否应该在 mail.mydomain.com 子域下添加 SPF 记录?
是的,您应该这样做,这是最佳做法,并且接收 mx 可能不仅具有 DMARC,还具有基于 SPF / DKIM 的其他邮件过滤器。
理论上,DMARC 允许将来自子域的电子邮件与域的 SPF 记录进行比较(您可能需要添加“aspf=r;”),但 SPF 的规范指出您应该为每个子域都有一个 SPF 记录 - 即使只是为了尝试阻止其他人从这些域发送垃圾邮件。
类似地,DKIM 对齐应该理想地匹配子域(同样,DMARC 策略可以做出允许(您可能想要添加“adkim = r;”)),这也是允许该对齐的最佳实践。
另外:您最好从 SPF 中删除“mx”,并用您的 mx 的 IP 地址替换,因为这可以减轻 DNS 查找失败影响电子邮件传递的可能性。
除此之外,我很想知道你的情况如何!