电子邮件最大的问题之一始终是它很容易受到欺骗,邮件客户端和站群服务器信任使用者提供的用于识别发件人的输入。垃圾邮件传送者经常滥用这一特性来传送电子邮件,让人误以为是它来自一个信誉良好的来源。因此需要一个站群解决方案来确保邮件只被合法传送方接受,以减少垃圾邮件传送的数量,并使垃圾邮件传送者难以把自己的电子邮件伪装成来自一个声誉良好的域的邮件。
SPF 站群解决方案
这就是 SPF(即传送方策略框架)的用处所在。通过该方法,域的所有者可以使用特殊的 DNS 记录来指定哪些站群服务器应代表域传送电子邮件。接收电子邮件站群服务器将检查电子邮件所来自的域的 SPF 记录;如果传送站群服务器与任何记录不匹配,则电子邮件将被丢弃,如果匹配,则将被发送。如果域名没有 SPF 记录,有些站群服务器可能会传送邮件,有些站群服务器会将其标记为垃圾邮件,而另一些站群服务器可能根据其配置将其丢弃。
现在已经建立了 SPF 的工作原理,让看看如何为一个特定的域建立一个 SPF 记录。 SPF 记录是一个特殊格式的 TXT 记录,它指定了可以和不能为域传送邮件的任何站群服务器的详细资讯。下面是一个使用 SPF 记录的简单示例,例如.com:
example.com. 60 IN TXT “v=spf1 -all”
为了显示 DNS 的 TXT 记录是针对 SPF 的,该记录以 “v=spf1” 开头。这之后是规则,在哪里可以传送电子邮件,并且不能用空格分隔传送电子邮件。在本例中,只有一个规则是 “-all”,它告诉读取记录的邮件站群服务器,不应该向该域传送邮件。
了解 SPF 规则
与其他任何事情一样,规则需要以一种特定的方式进行格式化才能被理解。
以下是选项列表:
all:表示可以与任何域匹配。
a:表示可以与其 DNS A 或 AAAA 记录与传送 IP 匹配的任何域匹配。
MX:表示可以与其 DNS MX 记录与传送 IP 匹配的任何域匹配。
PTR:表示记录中的域是否与传送方的域匹配
EXISTS:表示如果域名解析为任何地址,则存在匹配项。
INCLUDE:表示引用另一个域 SPF 记录并匹配与该记录的设定相匹配的任何域。
IP4:表示可以与匹配特定的 IPv4 地址或 CIDR 表示法中指定的地址范围,例如 IP4:xxx.xxx.xxx/xx 。
IP6:表示可以与与上述类似的特定 IPv6 地址或范围匹配。
还有一些修饰符规定了如何处理这些匹配项。
+:收到的与此规则匹配的邮件应通过;这是预设操作,因此+是可选的。
–:收到的符合此规则的邮件应被拒绝。
~:收到的符合此规则的邮件应该通过,但要标记。
?:收到的符合此规则的邮件应该没有策略集(将被处理为没有 SPF 的域)。
在实际使用中,唯一可能使用的修饰符是–。
现在让来看一个简单的 SPF 记录示例,它可以作为大多数域的基础。
v=spf1 a mx -all
在这种情况下,规则允许接收来自站群服务器的电子邮件,其中域的 A 或 AAAA 记录与传送站群服务器的 IP 匹配,或者传送邮件的站群服务器位于域的 MX 记录中。在所有其他情况下,电子邮件都会被拒绝。站群服务器也传送电子邮件,如状态和监视电子邮件,如果发现被拒绝,也可以在 SPF 记录中单独指定它们的 IP,以确保它们被送达。例如:
v=spf1 a mx ip:192.168.1.23 -all
这差不多就是它的全部功能——对于最初看起来很混乱的东西来说,这相当简单。使用者应该能够把需要的 SPF 记录放在域名上,并避免任何垃圾邮件。有兴趣的朋友可以参考阅读 怎样搭建一个 Linux 邮件站群服务器。