我想要在域上配置 SPF 以允许从以下位置发送邮件:
- x.com 网站服务器(x.com 和 www.x.com - 均在同一 IP)
- 其 MX 服务器(smtp.x.com、mx.x.com、mail.x.com)
- 未列为 MX 服务器的另一台服务器 (somehost.x.com)
- 通过 Gmail 使用已验证的帐户[电子邮件保护]
这个区域文件能用吗?如果不行,它有什么问题?
$ttl 38400
@ IN SOA ns1.x.com. hostmaster.x.com. (
201003092 ; serial
8H ; refresh
15M ; retry
1W ; expire
1H ) ; minimum
@ NS ns1.x.com.
@ NS ns2.x.com.
@ MX 10 mx.x.com.
@ MX 20 smtp.x.com.
@ MX 30 mailhost.x.com.
; SPF records
@ IN TXT "v=spf1 a mx a:somehost.x.com include:_spf.google.com ~all"
mx IN TXT "v=spf1 a -all"
smtp IN TXT "v=spf1 a -all"
mailhost IN TXT "v=spf1 a -all"
问题:
- _spf.google.com 是否适合包含在 gmail.com 中,还是仅适用于 Google Hosted Apps?如果仅适用于 Google Apps,我应该包含哪些内容才能从 gmail.com 发送?
- 如果邮件不应该从其他任何地方发送,那么使用 -all 而不是 ~all 是否安全?
- 为每个邮件服务器添加特定的 SPF 记录是否有意义?
- 区域文件还有其他问题吗?
我想在更改区域文件之前确认这些内容。该文件的 SPF 配置现在基本相同,只是没有 google.com 和 somehost,但我想确保更改时不会破坏任何东西。
答案1
查看 openspf.org 上的向导以帮助您编写正确的 SPF 设置:http://old.openspf.org/wizard.html?mydomain=x.com
除此之外,对于此用途来说,您的 SPF 设置对我来说看起来不错。
您为每个 MX 主机添加 SPF 记录的做法是正确的。这些记录用于当电子邮件因地址为空而被退回(在 SMTP 协议中)时,SPF 将转而使用发送服务器的地址。
如果您确定没有其他服务器可以为您的域发送邮件,那么您应该使用-all
。当然,这意味着如果发现有其他服务器发送的电子邮件,则可能会被拒绝!