19.7. 防止邮件垃圾邮件

邮件垃圾邮件,或未经请求的电子邮件广告,是许多用户面临的恼人问题。一个旨在解决此问题的项目已经成立,名为邮件滥用保护系统 (MAPS),并且构建了一种减少此问题的机制,称为实时黑名单 (RBL)。有关 MAPS RBL 如何工作的信息可以从其在线文档 http://maps.vix.com/rbl/ 获取。这个想法很简单。被发现生成邮件垃圾邮件的站点会被添加到数据库中,邮件传输代理(如 Exim)能够查询该数据库以确认来源不是垃圾邮件发送者,然后再接受来自该来源的邮件。

自从 RBL 出现以来,已经创建了几个其他类似的列表。其中最有用的一个就是拨号列表 (DUL),其中列出了拨号主机的 IP 地址。这些主机通常应该只将外发邮件发送到其 ISP 的邮件服务器。许多站点阻止来自外部拨号的邮件,因为当这样的主机避开其自身的 ISP 服务器时,通常不会有什么好事。

Exim 提供了对实时黑名单和其他黑名单的支持。它非常容易配置。要启用它,请将以下行添加到您的/etc/exim.conf文件

# Vixie / MAPS RBL (http://maps.vix.com/rbl)
rbl_domains = rbl.maps.vix.com : dul.maps.vix.com

此示例检查 RBL 和 DUL,拒绝来自任何在列表上的主机的任何消息。以下rbl_hosts选项允许您指定 RBL 检查应用(或不应用)于哪些主机组。默认设置是
rbl_hosts = *
这意味着所有主机都受制于 RBL 检查。如果您想覆盖黑名单并接受来自特定主机的邮件而不执行 RBL 检查,例如,您可以使用
rbl_hosts = ! nocheck.example.com : *
此列表中第一个项目之前的感叹号表示一个否定项:如果调用主机是 nocheck.example.com,它将匹配此项目。但是由于否定,RBL 检查不会执行。任何其他主机都匹配列表中的第二个项目。