SPF记录语法、工作原理及配置示例

1. 什么是SPF

SPF记录(Sender Policy Framework)是一种DNS记录类型,它是通过DNS文本(TXT)记录实现的,主要用于防止电子邮件地址欺骗和垃圾邮件。SPF记录的作用是允许域名所有者声明哪些IP地址(邮件系统的出口IP)或者主机被授权使用该域名发送电子邮件。

2. SPF工作原理

✅ 当邮件服务器收到一封声称来自example.com的邮件时,它会查看SMTP命令中MAIL FROM的发件人地址。

✅ 邮件服务器随后在DNS中查询example.com的SPF记录。

✅ SPF记录以特定的语法列出了一组规则,这些规则定义了哪些IP地址或网络范围(以及其他可能的机制如MX记录等)是被授权发送带有example.com发件人地址的邮件的。

✅ 如果实际发送邮件的IP地址与SPF记录中允许的地址匹配,则邮件被认为是经过验证的,否则邮件可能会被拒绝、退回,或者根据邮件服务器的配置进行其他处理(比如标记为垃圾邮件)。

3. SPF记录语法

v=spf1 <机制>[ <参数>] ... ~all

🔹 v=spf1:

表示这是版本1的SPF记录。

🔹 <机制> :可能包括但不限于以下几种:

        🔸ip4: 后接IPv4地址或CIDR地址块,例如 ip4:173.194.72.103 或 ip4:192.0.2.0/24。

        🔸ip6: 类似于 ip4:, 但针对IPv6地址。

        🔸mx: 表示任何该域名的MX记录指向的服务器都可以发送邮件。

        🔸a: 表示与该域名A记录相匹配的IP地址可以发送邮件。

        🔸include: 引用另一个域名的SPF记录。

🔹 <参数> :

可能包括: -(减号)表示“硬失败”,邮件应该拒收。 ~(波浪线)表示“软失败”,邮件可能被标记,但通常不会被直接拒收。?(问号)表示“不确定”,邮件通常会被接受,但可能不会被信任。 +(加号)表示“通过”,邮件来源得到授权。

🔹 ~all 或 -all:

结尾指示对于未明确提及的其他所有IP地址,邮件应该如何处理。-all意味着除了前面明确许可的IP地址之外,其他任何地址发送的邮件都应该被视为未经授权。

4. SPF配置示例

以163.com的SPF记录设置为例,可以通过nslookup命令(Windows、Linux系统均支持)或dig命令(Linux系统常用)查询SPF记录,记录如下:

[root@localhost ~]# dig +short 163.com txt
"qdx50vkxg6qpn3n1k6n1tg2syg5wp96y""google-site-verification=hRXfNWRtd9HKlh-ZBOuUgGrxBJh526R8Uygp0jEZ9wY""v=spf1 include:spf.mail.163.com -all""57c23e6c1ed24f219803362dadf8dea3""facebook-domain-verification=kqgnezlldheaauy9huiesb3j2emhh3 ""0hz8zn8jpkr3vffgll8hnd6j873bzvsg"

可以看出,TXT类型的记录有多种,分别有不同的用途,这里不做详述。其中”v=spf1 include:spf.mail.163.com -all” 表示SPF记录,根据上述语法解释,这里采用spf1版本,通过include引用spf.mail.163.com的SPF记录,-all表示硬失败。

可以通过命令继续查询spf.mail.163.com的SPF记录如下:

[root@localhost ~]# dig +short spf.mail.163.com txt
"v=spf1 include:spf-a.mail.163.com include:spf-b.mail.163.com include:spf-c.mail.163.com include:spf-d.mail.163.com include:spf-e.mail.163.com -all"

通过查询结果,可以看出由于163.com的出口IP众多,这里又通过include引用其他域名的SPF记录,继续通过命令查询spf-a.mail.163.com的SPF记录,示例如下:

[root@localhost ~]# dig +short spf-a.mail.163.com txt
"v=spf1 ip4:220.181.12.0/22 ip4:220.181.31.0/24 ip4:123.125.50.0/24 ip4:220.181.72.0/24 ip4:123.58.177.0/24 ip4:123.58.178.0/24 ip4:123.126.96.0/24 ip4:123.126.97.0/24 ip4:103.129.252.0/25 ip4:60.191.83.0/24 ip4:103.136.33.32/28 -all"

查到这一层,终于看到ip4的语法,这里显示的就是邮件系统的出口IP。不过大部分企业邮箱没有那么多的出口IP,也不需要通过include做复杂的嵌套查询,以mailabc.cn域名为例,查询SPF记录如下:

[root@localhost ~]# dig +short mailabc.cn txt
"qqmail-site-verification=f193a312a02073591521506eb8add0835942bced458""v=spf1 ip4:124.221.166.127 -all""V0n5mDTE1Mm"

“v=spf1 ip4:124.221.166.127 -all” 这是mailabc.cn邮箱的SPF记录,可以看出这个域名对应的邮箱只有一个出口IP。

5. 如何配置SPF记录?

通过上面介绍,大家已经了解SPF记录其实是一种TXT类型的DNS记录。如果需要配置该记录,需要通过域名服务商或者域名托管机构进行管理。大企业一般是通过自己的DNS服务器管理域名记录,中小企业大多通过域名服务商提供的管理后台进行管理。以mailabc.cn为例,该域名目前托管在阿里云。可以进入阿里云的“域名控制台”,然后根据向导进入“域名解析”界面“添加记录”即可,示例如下:

阿里云域名解析添加记录页面

参考来源:SPF记录语法、工作原理及配置示例|MailABC邮件知识百科 

  • 18
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值