电子邮件的最大问题之一一直是其易受欺骗性攻击,邮件客户端和服务器信任用户输入的信息来识别发件人。垃圾邮件发送者经常滥用这一点来发送电子邮件,给人留下电子邮件来自信誉良好的来源的印象。需要一种解决方案来确保只接受来自合法发件人的电子邮件,以减少发送的垃圾邮件数量,并使垃圾邮件发送者更难使电子邮件看起来像是来自信誉良好的域。
这就是 SPF(发件人策略框架)的用武之地。通过这种方法,域所有者可以使用特殊的 DNS 记录来指定哪些服务器应该代表域发送电子邮件。接收电子邮件的服务器将检查电子邮件声称来自的域的 SPF 记录;如果发送服务器与任何记录都不匹配,那么电子邮件将被丢弃,如果有匹配,则会投递。如果域缺少 SPF 记录,某些服务器可能会投递电子邮件,某些服务器可能会将其标记为垃圾邮件,其他服务器可能会根据其配置丢弃它。
现在我们已经确定了 SPF 的工作原理,让我们看看如何为特定域创建 SPF 记录。SPF 记录是一种特殊格式的 TXT 记录,它指定可以为域发送邮件和不能为域发送邮件的服务器的详细信息。这是一个使用 example.com 的 SPF 记录的简单示例:
example.com。 60 IN TXT “v=spf1 -all”
为了表明 DNS TXT 记录用于 SPF,该记录以“v=spf1”开头。接下来是可以和不能发送电子邮件的规则,以空格分隔。在本例中,只有一条规则是“-all”,它告诉读取记录的邮件服务器,任何地方都不应为该域发送邮件。
与其他所有内容一样,规则需要以特定方式格式化才能被理解。
这里是选项列表: all匹配任何域。a匹配其 DNS A 或 AAAA 记录与发送 IP 匹配的任何域。MX匹配其 DNS MX 记录与发送 IP 匹配的任何域。PTR如果 IPs PTR 记录中的域与发件人的域匹配,则匹配。EXISTS如果域名解析为任何地址,则匹配。 INCLUDE引用另一个域的 SPF 记录并匹配与该记录的设置匹配的任何域。 IP4匹配 CIDR 表示法中指定的特定 IPv4 地址或地址范围,例如 IP4:xxx.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 记录所需的内容,并希望避免任何将来的电子邮件被退回为垃圾邮件。