介绍
仔细定制的SPF记录将减少您的域名遭到欺骗性欺骗的可能性,并防止您的邮件在到达收件人之前被标记为垃圾邮件。 电子邮件欺骗是使用伪造的发件人地址创建电子邮件; 这是很容易做的,因为许多邮件服务器不执行身份验证。 垃圾邮件和网络钓鱼电子邮件通常使用这样的欺骗来误导接收者关于消息的来源。 多项措施,以解决欺骗,但是,已经发展了很多年: SPF , 发信人ID , DKIM和DMARC 。 发件人策略框架(SPF)是一种电子邮件验证系统,旨在通过检测电子邮件欺骗来防止垃圾邮件。 今天,几乎所有滥用的电子邮件都携带伪造的发件人地址。 受害者的地址被滥用常常遭受后果,因为他们的名声减弱,他们不得不浪费时间整理错误的反弹消息,或者(更糟的)他们的IP地址被列入黑名单。
SPF是一个开放标准,规定了防止发件人地址伪造的技术方法。 SPF允许管理员通过在域名系统(DNS)中创建特定的SPF记录(或TXT记录)来指定允许代表给定域发送邮件的主机。 邮件交换器使用DNS记录来检查来自给定域的邮件是否由该域管理员批准的主机发送。
好处
将SPF记录添加到您的DNS区域文件是阻止垃圾邮件发件人欺骗您的域的最佳方法。 此外,SPF记录将减少被标记为垃圾邮件或被收件人的邮件服务器退回的合法电子邮件的数量。 SPF记录不是100%有效,不幸的是,因为不是所有的邮件提供商检查它。 但是,许多人都会注意到,您收到的退款金额大幅下降。
示例SPF记录
SPF记录会作为TXT记录添加到您域的DNS区域文件,并且会为您的域识别已授权的SMTP服务器。
TXT @ "v=spf1 a include:_spf.google.com ~all"
如果你正在利用DigitalOcean DNS管理器中,确保报价包裹SPF记录。 下表提供了示例SPF记录的各个组件的说明:
组件 | 描述 |
---|---|
文本 | DNS区域记录类型; SPF记录被写为TXT记录 |
@ @ | 在DNS文件中,“@”符号是一个占位符,用于表示“当前域” |
v = spf1 | 使用SPF版本1将TXT记录标识为SPF记录 |
一个 | 授权在域A记录中标识的主机发送电子邮件 |
包括: | 授权代表来自google.com的网域发送邮件 |
〜all | 表示此列表是全包的,并且不允许其他服务器发送电子邮件 |
SPF记录的组件
SPF记录由SPF版本号组成,后面跟着由(i)机制,(ii)限定符和(有时)(iii)修饰符组成的字符串。 SPF客户忽略不与版本字符串开始TXT记录"v=spf1 ..."
SPF记录可以定义零个或多个机制 。 机制可用于描述被指定为域的授权的出站邮件程序的主机集。 以下列表是SPF记录中包含的常见机制:
all | ip4 | ip6 | a | mx | ptr | exists | include
机制可以用四个预选赛之一前缀:
限定词 | 描述 |
---|---|
+ | Pass =地址通过测试; 接受消息。 示例:“v = spf1 + all” |
- - | (硬)Fail =地址测试失败; 反弹任何不符合的电子邮件。 示例:“v = spf1 -all” |
〜 | 软故障=地址测试失败,但结果不是决定性的; 接受并标记任何不符合规定的邮件。 示例:“v = spf1〜all” |
? | 中立=地址未通过或未通过测试; 做什么(可能接受邮件)。 示例:“v = spf1?all” |
如果不包含限定符,将+
限定符暗示。
SPF记录也可以定义为2 修饰语 1; 或者,根本没有改性剂。 但是,每个修饰符只能出现一次。
redirect | exp
SPF记录在两个过程中进行评估:首先,评估所有机制和限定符。 然后,评估所有修饰符:
- 机制从左到右进行评价;
- 修饰符在第二遍上被评估,并且可以在记录中的任何地方发生。
机制
机制 | 描述 |
---|---|
所有 | 匹配所有本地和远程IP,并在SPF记录的末尾。 示例:“v = spf1 + all” |
ip4 | 指定单个IPv4地址或可接受的IPv4地址范围。 如果不包括前缀长度,则假定掩码为/ 32。 示例:“v = spf1 ip4:192.168.0.1/16 -all” |
ip6 | 相同的概念发现在ip4,但显然,与IPv6地址,而不是。 如果没有给出前缀长度,则假定为/ 128(单个主机地址)。 示例:“v = spf1 ip6:1080 :: 8:800:200C:417A / 96-” |
一个 | 指定DNS A记录中的所有IP。 示例:“v = spf1 a:domain.com -all” |
mx | 指定每个主机的MX记录的所有A记录。 示例:“v = spf1 mx mx:domain.com -all” |
ptr | 指定每个主机的PTR记录的所有A记录。 示例:“v = spf1 ptr:domain.com -all” |
存在 | 指定通常作为SPF定义的例外而挑出的一个或多个域。 在所提供的域上执行A查询; 如果发现结果,则发生匹配。 示例:“v = spf1 exists:domain.com -all” |
包括 | 指定其他域为授权域。 示例:“v = spf1 include:outlook.microsoft.com -all” |
“全”机制 3>
在all
机构通常会在SPF记录的末尾; 并且其前缀有限定符,例如
例子 | 描述 |
---|---|
“v = spf1 mx -all” | 允许网域的MX主机为网域传送邮件,并禁止所有其他主机。 |
“v = spf1 -all” | 域根本不发送邮件。 |
“v = spf1 + all” | 此SPF是无用的,因为它不限制被授权发送电子邮件的主机。 |
修饰符
修饰符是可选的,修饰符可以每个记录只出现一次。 未知的修饰符将被忽略。
在“ 重定向 ”修饰符发送查询到其他域。redirect=example.com
也就是说,example.com的SPF记录替换为当前域的SPF记录。 重定向修改器对于希望将同一记录应用到多个域的用户很有用。 例如:
ny.yourdomain.com的区域文件中的示例条目: | TXT @“v = spf1 redirect = _spf.yourdomain.com” |
sf.yourdomain.com的区域文件中的示例条目: | TXT @“v = spf1 redirect = _spf.yourdomain.com” |
am.yourdomain.com的区域文件中的示例条目: | TXT @“v = spf1 redirect = _spf.yourdomain.com” |
_spf.yourdomain.com的区域文件中的示例条目: | TXT @“v = spf1 mx:yourdomain.com -all” |
为了清楚起见,建议任何“重定向”修饰符显示为记录中的最后一个术语。
在“ EXP ”修改设置SPF记录的解释。
exp=[macro-string]
如果SPF查询产生FAIL结果,则查询说明,并且解释字符串向不合格用户提供更多信息。 解释通常放在SPF日志中。 示例:exp = spf-error。 SPF发布者可以指定发件人看到的解释字符串。 这样,ISP可以将不合格用户定向到提供进一步指令的网页。
把它放在一起
虽然在DNS服务器上不需要SPF记录来根据在其他DNS服务器上发布的SPF策略来评估传入电子邮件,但最佳做法是在DNS服务器上设置SPF记录。 设置SPF记录允许其他电子邮件服务器使用SPF过滤(如果该功能在邮件服务器上可用),以防止来自可能与您的域相关联的欺骗或伪造的电子邮件地址的传入电子邮件。 随着SPF记录被更广泛地实现,SPF过滤将更有效地识别欺骗电子邮件消息。
与往常一样,如果您需要帮助设置您的SPF记录,请通过提出您的问题寻求DigitalOcean社区的帮助,下面。