SPF – Sender Policy Framework

SPF是一个基于DNS的 MX反向解析系统,采用在NDS内加入 SPF Record 的方式,用来指明只有域用户才被允许发送邮件。其目的是为了防止域用户的邮件地址被spammers伪造。

在Qmail中,SPF有4个配置文件(/var/qmail/control),一般系统漠然安装的话,会仅产生一个配置文件。

1. spfbehavior

spfbehavior是指明qmail系统是否启用反向解析。以前的qmail默认值是0(不启用),qmail-toaster 1.0.5以后,默认值就改为3. spfbehavior的取值意义为:
0: 不做SPF检查
1: 仅仅生成 Received-SPF 头,但是不阻止邮件投递
2: 如果DNS检查出现问题,则产生一个 temporary 错误
3: SPF解析错误是拒绝邮件,通常是指 deny
4: SPF解析出现 softfail 时,拒绝邮件
5: SPF解析出现 neutral 时,拒绝邮件
6: SPF解析过程出现任何错误,拒绝邮件

环境变量 SPFBEHAVIOR 会覆盖 spfbehavior 的配置文件。当客户的请求环境中被设置了 RELAYCLIENT 时,Qmail不会启用 SPF 检查.

2. spfrules

spfrules 配置文件指明,如果根据 spfbehavior 的设定,一封邮件在检查SPF失败后(包括 fail, softfail, neutral),再执行 spfrules 的设定;spfrules 每行都表明了一条规则,如:
include: spf.abc.com
include: jxx.ori.com

3. spfguess

spfguess 配置文件指明,如果邮件发送者的服务器没有提供SPF配置(如目前花生壳上所作的域名就不能设置SPF Record),Qmail将进行 spfguess 指明的检查。如:
a mx

a 仅接收域名(如 domain.com)的IP地址为其A记录发送出来的邮件
mx 允许接收域名(如 domain.com)的MX服务器发送的邮件,如果日后域名增加了其他的mx记录,这些mx记录将被自动列入允许范围

4. spfexp

spfexp是自定义一个解释语句,当邮件发送者的发送请求被拒绝时,此语句显示给发送者。如

550 SPF not exist.