SPF记录

来源:互联网 发布:细说PHP答案 编辑:程序博客网 时间:2024/05/16 06:28

SPF 通过提供一种验证发送主机的机制来防止在发送电子邮件通信时未经授权使用某一域名(即“仿冒”)

在一条SPF记录中,按照排列的先后顺序,对所给出的机制进行验证.如果在SPF记录中,没有机制或修改符,默认结果是中性(Neutral);如果域没有SPF记录,结果是:””(None);如果在DNS解析期间,有一个临时错误,会报临时错误”(TempError)(以前的规划中称作错误”(error));如果SPF记录句型错误,比如写法错误或者使用了未知句型,会报永久错误”(PermError)(以前称作”unknown”)



1 机制

1.1 机制表示

1.1.1 all

这个机制总是匹配的,通常用在记录的结尾.:

“v=spf1 mx –all” 允许所有该域的MX邮件服务器发送邮件,禁止所有其他的.

“v=spf1 –all” 该域根本不能发送邮件

“v=spf1 +all” 任何服务器都可以发送邮件

1.1.2 ip4

“v=spf1 ip4:192.168.0.1/16 –all” 允许192.168.0.1192.168.255.255的服务器发送邮件

“v=spf1 ip4:192.168.0.1 –all”   允许192.168.0.1发送邮件,“v=spf1ip4:192.168.0.1/32 –all”同意

1.1.3 ip6

单个IP,ip4不同,/128为默认前缀:

"v=spf1 ip6:1080::8:800:200C:417A/96 -all"

允许1080::8:800:0000:00001080::8:800:FFFF:FFFF之间的主机发送

"v=spf1 ip6:1080::8:800:68.0.3.1/96-all"

允许1080::8:800:0000:0000 1080::8:800:FFFF:FFFF之间的主机发送

1.1.4 a

:假设当前域为example.com

"v=spf1 a -all" 当前域被使用

1.1.5 mx

所有域的MX记录对应的A记录,按照MX记录的优先级进行验证.如果发送IP在这些记录中,则机制匹配.如果域未指定,默认为当前域.

A记录需要精确匹配发送邮件的IP地址.如果有CIDR前缀,则需要逐个对应IP地址验证.

:

v=spf1 mx mxeferrals.domain.com-all"

Perhaps a domain sends mail through its MXservers plus another set of servers whose job is to retry mail for deferringdomains.

也许一个域可以通过他的MX服务器发送邮件,而另外也可以通过deferrals.domain.comMX服务器发送邮件.


1.2 标识符

作为机制的前缀,表明机制的状态.机制的默认标识符为”+”

"+" Pass (通过)

"-" Fail (失败)

"~" SoftFail (软失败)

"?" Neutral (中性)


2修改符

在一个SPF记录中,每个修改符只能使用一次,不能重复使用.未知修改符将会在验证时忽略。

1.2.1 redirect

句型: redirect=<domain>

将会用指定域代替当前域

在下面的例子里:当前域为example.com,发信IP1.2.3.4

“v=spf1 redirect=example.net”

如果example.net没有SPF记录,返回”unknown”的错误

假设example.netSPF记录是”v=spf1 a –all”

查询example.netA记录,如果匹配1.2.3.4,通过”(Pass);如果不匹配,该行为失败,接着开始执行-all机制.

1.2.2 exp

句型: exp=<domain>

提供解释性的语句.如果SMTP接收者拒绝一个信息,它可以包含一个返回给发信者的解释信息.SPF记录里可以包含一个解释字符串给发送者,告之相关的错误信息或需要访问的帮助页面等.

处理过程

错误代码

验证SPF记录的结果只能有如下几在种:

  

结果

  

解释

可做行为

  

Pass

  

SPF记录指定,主机被允许发送

接受

  

Fail

  

SPF记录指定,主机不被允许发送

拒绝

  

SoftFail

  

SPF记录指定,主机不被允许发送,但可以再发送

接受但做标记

  

Neutral

  

SPF记录详尽,但不能确认其有效性

接受

  

None

  

SPF记录或SPF记录验证无结果

接受

  

PermError

  

永久错误(例如不正确的格式记录)

未指明

  

TempError

  

临时错误发生

接受或拒绝



创建SPF记录向导 

http://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/default.aspx  


参考文档

 http://wenku.baidu.com/view/483e490df12d2af90242e6c1.html


原创粉丝点击