如果我不想让子域名发送电子邮件,我需要为它们设置 SPF 记录吗?

如果我不想让子域名发送电子邮件,我需要为它们设置 SPF 记录吗?

我有一个主域名,其 SPF 记录(现在)有效,但我们还通过 cpanel PHPXML API 以编程方式为客户创建了大量子域名。这些子域名不用于发送任何邮件。

当我们创建它们时,它们会获取我的 IP 的 A 记录和“v=spf1 +a +mx +ip4:[MY IP] ?all”的 TXT 记录。这些就是它们拥有的所有 DNS 记录

最近,我们收到了很多电子邮件欺骗,并意识到我们的主要域名存在无效(重复的 SPF)。我们刚刚修复了这个问题,但不确定:

1) 垃圾邮件发送者是否仍可以使用上面列出的 SPF 从没有 MX 记录的子域名伪造电子邮件?

2)与我列出的相比,子域名没有 SPF 是否更好?

3)有没有办法阻止子域名通过我的主域名的 SPF 发送/欺骗电子邮件?

这是我们的主机建议我们切换到的主要域 SPF:“v=spf1 a mx ptr a:dedrelay.[webhost].com include:dedrelay.[webhost].com ~all”

答案1

子域名不受主域名 SPF 记录的影响。如果您有一堆子域名,并且您知道它们永远不会发送邮件,那么最好的办法就是-all为每个子域名定义一个 SPF 记录。这样,互联网也可以知道您不想让它们发送电子邮件。

编辑:如果子域没有 SPF 记录,则检查 SPF 的收件人将看不到与 SPF 相关的阻止理由。

是的,SPF 不会阻止某人接受来自没有 MX 记录的子域的邮件。他们可能选择不这样做,但只要它能解析 - 有时即使它不能解析 - 他们也可能选择这样做。这不是 SPF 问题。

您当前的 SPF 记录对于防止子域名上的欺骗没有任何作用,因为正如我所说,子域名不受主域名的 SPF 记录的影响。

很抱歉这会给你带来很多麻烦,但是如果您想使用 SPF 建议收件人拒绝来自这些子域的电子邮件,您需要为他们定义 SPF 记录。这就是协议的工作原理。

答案2

虽然RFC 7208 不建议这么做,您可以使用通配符子域来定义 SPF 记录。但是,如果您要阻止邮件的任何子域具有任何类型的现有资源记录(这可能是您想要这样做的唯一原因),则无论如何您都需要明确定义该子域的 SPF 记录。

来自 RFC 的示例:

  EXAMPLE.COM.          MX      10      A.EXAMPLE.COM
  EXAMPLE.COM.          TXT     "v=spf1 a:A.EXAMPLE.COM -all"

  *.EXAMPLE.COM.        MX      10      A.EXAMPLE.COM
  *.EXAMPLE.COM.        TXT     "v=spf1 a:A.EXAMPLE.COM -all"

  A.EXAMPLE.COM.        A       203.0.113.1
  A.EXAMPLE.COM.        MX      10      A.EXAMPLE.COM
  A.EXAMPLE.COM.        TXT     "v=spf1 a:A.EXAMPLE.COM -all"

  *.A.EXAMPLE.COM.      MX      10      A.EXAMPLE.COM
  *.A.EXAMPLE.COM.      TXT     "v=spf1 a:A.EXAMPLE.COM -all"

因此,如果稍后为您定义了一条记录,B.EXAMPLE.COM.则也必须为其明确定义一条 SPF 记录。

这无疑限制了通配符记录在此目的上的实用性,但从您的问题中很难看出。

答案3

使用 DMARC,因为如果子域上不存在 DMARC 记录,它将自动查看“组织”域。https://www.valimail.com/blog/how-dmarc-handles-domains-and-subdomains-in-email-addresses-part-1/

相关内容