SPF包含机制在SPF记录中持有参考或条件,这些条件对于每个给定的服务器来说都必须满足,以提高邮件的可送达性。如果你不小心漏掉了在你的SPF记录中为你的第三方供应商添加 "包含 "声明,这可能会导致你的收件人出现问题,比如邮件被退回,你的整体退信率可能会激增。
了解 SPF 记录中的 "包含 "机制是什么,以及你如何根据自己的需要优化 SPF 包含语句。
SPF包括什么意思?
在你的 SPF 记录语法中,"include "机制表示记录,以传达你的电子邮件服务器检查与 "include "行中指定的域名相匹配的记录。
SPF "include" 指向一个域,在检查发送 IP 是否被允许时,将查询这个域的 SPF 记录。如果发送的 IP 地址包含在 SPF 定义的 "include "列表中,那么它将导致匹配和 SPF 通过。
SPF多重包含机制的重要性
SPF包括很重要,因为:
➜ 它指定你要为你的 "包括 "区块中列出的任何域名提供 SPF 记录保护。
➜ 它增加了特定于一个域的规则。
➜ 你可以使用 SPF 包含机制,进一步纳入适用于同一类别中所有域名的一般过滤规则。这意味着,如果你的应用程序支持多个类别的电子邮件地址,你可以使用include语句,允许根据收件人地址的类别,进行更复杂的过滤。
SPF包括如何工作?
SPF包含机制允许一个域名所有者将发送电子邮件的责任委托给另一个域名。当一个域名所有者想授权第三方服务或供应商代表他们发送电子邮件时,它通常被使用。
以下是SPF包含机制的工作原理:
- 域名所有者发布了一条SPF记录
- 在SPF记录中列入机制,指定另一个被授权代表他们发送电子邮件的域或IP地址。
- 在查询过程中,SPF记录会从发件人的域名的DNS中检索出来。
- 接收电子邮件的服务器评估SPF记录,以确定发送服务器是否被授权为该域名发送电子邮件。如果SPF记录包括一个 "包含 "机制,接收服务器也会继续检查包含的域名的SPF记录。
- 接收服务器通过查询DNS中包含的域的SPF记录来进行递归查询。如果有多层包含机制,这个过程还会继续。
SPF包括的例子
比如说: 如果你的SPF记录中有 "include:_spf.google.com",而邮件是从Google的IP地址发出的,它将被视为一个授权的邮件发件人,因为发件人的IP是在该域名的SPF记录的 "include "机制中找到的。因此,电子邮件在到达预定收件人之前将成功通过服务器。
为了授权google作为一个经过验证的发送源,这应该是你的SPF记录语法:
v=spf1 include:_spf.google.com ~all
为什么不推荐使用SPF的多重包含?
多个 SPF 记录会使收件人服务器在查找过程中考虑哪条 TXT 记录而感到困惑,而且太多的 spf 包括增加多个 DNS 查找,会迅速超过 10 个查找限制。
SPF记录是以v=spf1开头的TXT类型记录。 它们告诉电子邮件服务器,在确定某封电子邮件是否是垃圾邮件时,应该遵循哪些规则。这些规则包括
因此,如果你的服务器上有两个独立的 SPF TXT 记录条目,你的邮件将无法通过 SPF 认证并返回一个 PermError。这是因为接收邮件的服务器不知道应该遵循哪条规则--它将简单地忽略这两条TXT记录。
如何在你的SPF记录中包含多个域名或主机或IP地址?
当你希望包括1个以上的SPF记录时,你可能会遇到电子邮件发送方面的问题(如 邮件被拒绝为垃圾邮件)。解决的办法是删除违规的 SPF 记录,并通过 SPF include 将域名或主机条目合并到一个记录或一行中。
考虑一下SPF记录的例子,该记录有许多主机和ip4地址,由世界著名的消费电子产品的技术制造商之一Lenovo.com使用。
当执行 SPF记录查询的时候,我们发现Lenovo.com已经合并了4个域名。
- spf.messagelabs.com
- _netblocks.eloqua.com
- spf.protection.outlook.com
- spf.pfpool.lenovo.com
和5个IP4地址。
- 72.32.45.225
- 40.65.201.146
- 138.108.60.125
- 138.108.24.107
- 52.247.21.11
变成一条这样的记录。
v=spf1 include:spf.messagelabs.com include:_netblocks.eloqua.com include:spf.protection.outlook.com include:spf.pfpool.lenovo.com ip4:72.32.45.225 ip4:40.65.201.146 ip4:138.108.60.125 ip4:138.108.24.107 ip4:52.247.21.11 ~all
了解SPF记录的语义
考虑到上面的例子,我们已经了解到,当把众多的主机或IP4地址合并到一个SPF记录中时,以下规则适用。
一条SPF记录应该有3个部分才能被认为是有效的:声明(开始),域名的include机制和IP地址的IP4标签(中心),以及一个执行规则(结束)。
➜ 宣言:该记录应以 v=spf1(在规则中不要再使用这个字符串)
➜ 允许的领域:添加一个 include:为每个域添加一个 include: (你必须使用 SPF 包括机制,因为每个域的 include: 都要添加到 SPF 记录中)
➜ 允许的IP。添加一个 IP4标签(你必须在你添加到SPF记录的每个IP地址之前使用IP4标签)。
➜ 执行规则:以一个记录结束 ~语句结束。语句结尾(在结尾处使用这个字符串,而且只使用一次)。
关于SPF的一个重要说明 包括
在你的 SPF 记录中加入 "包括 "机制是很重要的,因为它允许你在你的 SPF 记录中包括其他域名和主机,这对于验证你的邮件的真实性很有帮助。
然而,以下规则适用于使用每个 SPF 记录的查找次数(如 RFC 4408 第 10.1 节中提到的 第 10.1 节)。):
"SPF实施必须限制机制和修饰符的数量,每次SPF检查最多不超过10个,包括使用 "包含 "机制或 "重定向 "修饰符引起的任何查询。
如果你的 SPF 实现没有限制机制和修饰符的数量,它就会在对不可到达的主机的检查上睡觉。因为这些主机将永远不会被包括在你的检查中,它们将永远不会收到来自客户端的邮件。这可能会导致邮件交付的严重问题。
SPF之间的区别包括:和一个。
SPF "include "机制用于在当前域名的SPF记录中包含来自其他域名的SPF记录,而SPF "a "机制则用于指定授权为该域名发送电子邮件的单个IP地址或主机名(A记录)。
SPF包括与一个
使用A的原因。
- 它更实用,更不复杂
- 因为你没有在相关的域名上启用SPF。
- 因为SPF没有正确配置,或者它错误地允许不在其A记录中的其他服务器。
使用的原因包括。
- 你相信一个网站的域名有一个有效的SPF记录
- 因为你希望有一个单一的真相来源,以达到不重复的目的,而SPF域很复杂
- 你可能想对你的SPF记录进行修改,而不一定要为所有包含你的域名编辑DNS。
自动优化SPF的收录:针对多个域名和IP地址
多主机、多IP地址的SPF记录并不是什么新鲜事。但是,你需要如何建立这种记录,需要适当的专业知识来避免 SPF 认证失败或 PermError。
要建立一个有效的 SPF 记录,你需要正确使用 include: 机制。而要使你的 SPF 策略有效,它必须在多个主机和 IP 地址上正确实施。
当使用PowerDMARC的 SPF扁平化工具时,我们将为你生成一个有效的SPF记录,其中包括你所有的主机和IP地址在一行文本中。你可以添加你想要的域名和 IP,只要用空格隔开就可以了。我们将把这些记录合并到一个 SPF 包括在内,这样这样,你就不会超过查询限制,或者面临电子邮件发送和硬故障问题。
- PowerDMARC 与 ConnectWise 集成- 2024 年 10 月 31 日
- 什么是数据报传输层安全(DTLS)?优势与挑战- 2024 年 10 月 29 日
- DMARC 和 FedRAMP:提高电子邮件安全性- 2024 年 10 月 28 日