如何为转发域编写正确的 SPF TXT 记录

Posted

技术标签:

【中文标题】如何为转发域编写正确的 SPF TXT 记录【英文标题】:How to write the correct SPF TXT record for a forwarding domain 【发布时间】:2019-09-12 02:07:12 【问题描述】:

我有一个转发域 (forwardingdomain.org > actual-website.org),为此我设置了电子邮件转发器。为了减少我的电子邮件转发器的垃圾邮件/欺骗,我想在域的 DNS 中设置正确的 SPF TXT 记录。

我在 DNS 中设置了 SPF TXT 记录,但是,最近我收到了似乎来自转发域的电子邮件转发器的诈骗/勒索软件/垃圾邮件。因此,该 SPF 记录可能不起作用。我已经成功地为具有关联网站的域设置了 SPF TXT 记录(即,我可以在 SPF 记录中使用服务器 IP)。但是,对于这个域,由于是转发,不清楚我应该使用什么 IP。

这是当前的 SPF 记录(我不记得自己添加了这个;它可能是自己生成的):

Type: TXT
Host: @
Value: v=spf1 a mx include:sendgrid.net ~all

预期结果:不应再收到看起来像是从我的电子邮件转发器发送的诈骗/垃圾邮件/勒索软件电子邮件。

实际结果:诈骗/垃圾邮件/勒索软件电子邮件正在进来,似乎是从我的电子邮件转发器发送的。

【问题讨论】:

【参考方案1】:

首先,我建议添加一个include 机制以从您的转发域中提取 IP。

接下来,你有一个~all 默认机制,这意味着伪造的消息将不会被拒绝,只是标记为不合规(softfail)。这是正确的设置如果您仍在测试您的配置您正在使用 DMARC。

使用 DMARC,softfail 可以变成完全拒绝,这通常被认为比使用 -all 更好,因为它保留了 DMARC 的其他语义。

【讨论】:

感谢您的回复,@synchro。我真的很不熟悉 SPF TXT 记录应该如何工作。如何添加include 机制以从我的转发域中提取 IP?我现在没有使用 DMARC。我应该设置吗?如果是这样,我该怎么做? 在您的转发域的 SPF 中设置允许的 IP 列表,并在其中添加一个 include,就像您为 sendgrid 所做的那样。 DMARC 对于 cmets 来说太大了,但有很多关于它的文档和文章。它可能涉及设置 DKIM,这可能更困难。

以上是关于如何为转发域编写正确的 SPF TXT 记录的主要内容,如果未能解决你的问题,请参考以下文章

DMARC 是电子邮件转发的终结吗? [关闭]

Office365 设置 transport rule转发到第三方安全扫描邮件

linux下vim配置(转发)

Java web.xml - 如何为任何不匹配的请求执行一个包罗万象的 servlet 以转发到 index.html?

使用 MX 记录将电子邮件转发到另一个域

Nginx转发+反向代理实现跨域接口转发