我总是将我所有的邮件服务器放在 SPF 声明中,但我不确定这是否是实现 SPF 的正确方法。
我所有的邮件都通过邮件网关路由。一切都先到这个服务器,然后再转发到互联网。
问题是:考虑到邮件网关是我在 DNS 中的 MX 记录,并且使用这种架构,我应该以这种方式编写 SPF 设置:
example.com. 86400 IN TXT "v=spf1 mx -all"
或者我应该A
为内部服务器添加额外的记录?
我总是将我所有的邮件服务器放在 SPF 声明中,但我不确定这是否是实现 SPF 的正确方法。
我所有的邮件都通过邮件网关路由。一切都先到这个服务器,然后再转发到互联网。
问题是:考虑到邮件网关是我在 DNS 中的 MX 记录,并且使用这种架构,我应该以这种方式编写 SPF 设置:
example.com. 86400 IN TXT "v=spf1 mx -all"
或者我应该A
为内部服务器添加额外的记录?
这应该足够了。互联网上的任何服务器都只会将您的网关视为电子邮件的发起者,并且不会关心邮件源自的任何内部服务器。
没有办法说,因为你无法控制其他人是否决定接受你的电子邮件。他们可以而且有时确实会出于违反 RFC 和愚蠢的原因拒绝您的邮件。
正如proteus所说,您所显示的记录应该足以证明电子邮件来自您;据我了解,它当然满足RFC 7208 。但是我知道一些大型组织拒绝电子邮件,因为它在离开客户网络的途中经过了服务器。他们不应该对
Received: from
除了导致最终连接的标题之外的标题,但它们确实如此。在这种特殊情况下,其中一台内部服务器的主机名不合格,并且在标头中留下的足迹导致接收者拒绝它。当有人指出这一点时,他们感到非常抱歉,但是(就像这些天如此令人沮丧的普遍情况一样)他们已经外包了他们的电子邮件,因此无法控制这个决定。我们最终不得不设置完整的内部 DNS 以使电子邮件能够通过它们。这个故事的重点是,他们可以很容易地决定在最终交付之前对所有继电器进行 SPF 测试。你不知道某个白痴会做出什么愚蠢的特技。你只能尊重 RFC(就像你一样),抱最好的希望,并在最坏的情况到来时处理它。