SPF 记录设置

什么是SPF

    是 Sender Policy Framework 的缩写,一种以IP地址认证电子邮件发件人身份的技术。 接收邮件方会首先检查域名的SPF记录,来确定发件人的IP地址是否被包含在SPF记录里面,如果在,就认为是一封正确的邮件,否则会认为是一封伪造的邮件进行退回。
    SPF可以防止别人伪造你来发邮件,是一个反伪造性邮件的解决方案。当你定义了你域名的SPF记录之后, 接收邮件方会根据你的SPF记录来确定连接过来的IP地址是否被包含在SPF记录里面,如果在,则认为是一封正确的邮件,否则则认为是一封伪造的邮件。

设置正确的 SPF 记录可以提高邮件系统发送外域邮件的成功率,也可以一定程度上防止别人假冒你的域名发邮件。

一般设置

我们架设的邮件系统就自用一台邮件服务器,在 DNS 指向里设置一条下面的 TXT 记录(SPF 记录)就可以了.
具体操作是:在域名服务商的域名控制面板里加一条类型是 TXT 的记录:

v=spf1 a mx ~all

或者用比较严格的
v=spf1 a mx -all

如果除了邮件服务器,网站也可能直接发邮件(假设ip是 218.13.20.15),也可能通过中继服务器发邮件(假设ip是 210.120.1.20), TXT 可以设置为:
v=spf1 a mx ip4:218.93.120.45 ip4:210.120.1.20 ~all


注意有的域名服务商不支持设置 txt 记录, 只能和对方联系。

检查spf指向是否生效

nslookup  -q=txt winmail.net
请将 winmail.net 改成你的域名

下面是阿里云(万网)域名控制台里设置 TXT 记录的说明:

        A: TXT
        B: 设置顶级域名直接留空,系统会自动变成 @;如果使用的域名系统不允许为空,就输入 @
        C: 默认
        D: v=spf1 a mx ~all
        E: 不能设置
        TTL: 默认 10分钟

关于SPF更详细的信息请参考:
    SPF标准(英文): http://www.ietf.org/rfc/rfc4408.txt
    SPF 记录百度百科:http://baike.baidu.com/view/1372988.htm
    什么是 DNS SPF 记录?Cloudflare
    SPF 在线检查(英文):https://www.kitterman.com/spf/validate.html
    可以发封任意内容的邮件到
check-auth@verifier.port25.com
    会收到针对发件人系统 SPF 设置检测结果邮件


进一步还可以设置 DMARC 记录,请参考 如何设置 DMARC