5.13. 反垃圾邮件

任何可以通过网络请求向其他地方发送电子邮件的程序都可能被用来传输垃圾邮件。垃圾邮件是未经请求的大量电子邮件 (UBE) 或大量未经请求的电子邮件的常用名称。它有时也被称为未经请求的商业电子邮件 (UCE),尽管这个名称具有误导性——并非所有垃圾邮件都是商业性的。有关为什么垃圾邮件是一个如此严重的问题以及关于它的更一般性讨论,请参阅我的文章 http://www.dwheeler.com/essays/stopspam.html,以及 http://mail-abuse.org/http://spam.abuse.net/CAUCEIETF RFC 2635。垃圾邮件接收者和中介承担了垃圾邮件的大部分成本,而垃圾邮件发送者发送垃圾邮件的成本却非常低。因此,许多人认为垃圾邮件是对服务的盗窃,而不仅仅是一些无害的活动,并且随着垃圾邮件数量的增加,这种看法的人数也在增加。

如果您的程序可以用于生成发送给其他人的电子邮件(例如邮件传输代理、通过电子邮件发送的数据生成器或邮件列表管理器),请务必编写您的程序以防止其未经授权地用作邮件中继。程序通常应仅允许合法的授权用户向其他人发送电子邮件(例如,公司邮件服务器内部的人员或合法订阅该服务的人员)。有关此内容的更多信息,请参见 IETF RFC 2505。此外,如果您管理邮件列表,请确保它可以强制执行只有订阅者才能向列表发布的规则,并创建一个“登录”功能,使其更难以让垃圾邮件发送者轻松订阅、发送垃圾邮件和取消订阅。

更直接地反击垃圾邮件的一种方法是加入对 MAPS (Mail Abuse Prevention System LLC) RBL (Realtime Blackhole List) 的支持,该列表实时维护已知垃圾邮件来源的 IP 地址列表。有关更多信息,请参见 http://mail-abuse.org/rbl/。许多当前的邮件传输代理 (MTA) 已经支持 RBL;请参阅他们的网站以了解如何配置它们。使用 RBL 的通常方法是简单地拒绝接受来自黑名单中 IP 地址的任何请求;这很严厉,但它解决了问题。另一个类似的服务是开放中继数据库 (ORDB),网址为 http://ordb.org,它动态地识别那些允许开放电子邮件中继的站点(开放电子邮件中继是配置错误的电子邮件服务器,允许垃圾邮件发送者通过它们发送电子邮件)。另一个可以获取更多信息的地方是 SPEWS。我相信还有其他类似的服务。

我建议许多系统和程序默认情况下启用垃圾邮件阻止功能(如果它们可以将电子邮件发送给那些身份受远程用户控制的其他人)——这包括 MTA。至少,考虑一下这一点。当然,这个建议存在实际问题——您可能会(极少数情况下)抑制与合法用户的通信。另一方面,如果您不阻止垃圾邮件,那么很可能其他所有人都会将您的系统列入黑名单(从而忽略您的电子邮件)。这不是一个简单的问题,因为无论您做什么,总会有人不允许您向他们发送电子邮件。当然,您对维护实时黑名单的组织的信任程度如何——他们是否会将真正无辜的站点添加到黑名单中,并且一旦一切正常,他们是否会从黑名单中删除站点?因此,这变成了一种权衡——与垃圾邮件发送者(以及一些无辜者)交谈更重要,还是与那些拥有垃圾邮件阻止功能的许多其他系统交谈(失去那些与垃圾邮件发送者共享设备的无辜者)更重要?显然,这必须是可配置的。这是一个有争议的建议,因此请根据您的情况考虑您的选择。