如果您收到垃圾邮件,请举手。保持举着。
如果您收到计算机病毒或其他恶意软件,也请举手。
如果您收到虚假的投递状态通知 (DSN),例如“邮件无法投递”、“发现病毒”、“请确认投递”等等,这些通知与您从未发送过的邮件有关,也请举手。这被称为附带垃圾邮件。
最后这种形式尤其麻烦,因为它比“标准”垃圾邮件或恶意软件更难清除,而且此类邮件可能会让不具备解析邮件标头的超凡技能的收件人感到非常困惑。在病毒警告的情况下,这通常会导致收件人方面不必要的担忧;更普遍的情况是,常见的趋势是忽略所有此类邮件,从而错过合法的 DSN。
最后,我想让那些由于垃圾邮件或病毒扫描器的错误分类而丢失合法邮件到黑洞中的人抬起脚。
如果您之前站着,现在仍然站着,我建议您可能没有充分意识到您的邮件正在发生什么。如果您一直在进行任何类型的垃圾邮件过滤,即使只是手动将邮件移动到邮件阅读器中的垃圾箱,更不用说尝试使用原始的过滤技术,例如 DNS 黑名单(SpamHaus、SPEWS、SORBS...),那么您很可能丢失了一些有效的邮件。
垃圾邮件,就像许多其他贪婪的产物一样,是一种社会疾病。称之为富裕病,或者任何你喜欢的;低等生命形式试图摧毁更大的生态系统,如果成功,最终将毁掉它们自己的栖息地。
抛开更大的社会问题和哲学不谈:您——邮件系统管理员——面临着非常具体和现实的困境,即找到一种方法来处理所有这些垃圾邮件。
事实证明,传统的邮件处理和由邮件传输和投递软件的各个组件委派的方式存在一些局限性。在传统的设置中,一个或多个邮件交换器接受大多数或所有发往域内地址的传入邮件。通常,它们然后将邮件转发到一个或多个内部机器以进行进一步处理,和/或投递到用户的邮箱。如果这些服务器中的任何一个发现它无法执行请求的投递或功能,它会生成一个 DSN 并返回给原始邮件中的发件人地址。
随着组织开始部署垃圾邮件和病毒扫描器,他们经常发现最容易的途径是将这些扫描器集成到邮件投递路径中,当邮件从传入的邮件交换器传输到内部投递主机和/或软件时。例如,过滤垃圾邮件的常见方法是通过路由邮件通过 SpamAssassin 或其他软件,然后再将其投递到用户的邮箱,和/或依赖用户邮件用户代理中的垃圾邮件过滤功能。
此时处理被分类为垃圾邮件或病毒的邮件的选项是有限的
您可以将投递状态通知返回给发件人。问题是几乎所有垃圾邮件和电子邮件传播的病毒都使用伪造的发件人地址投递。如果您退回此邮件,它将总是发送给无辜的第三方——也许是警告瑞典的一位祖母,她使用 Mac OS X 并且不太了解计算机,说她感染了 Blaster 蠕虫。换句话说,您将生成附带垃圾邮件。
您可以将邮件丢弃到比特桶中,而不向发件人发送任何通知。这在误报的情况下是一个更大的问题,因为发件人和收件人都永远不会知道邮件发生了什么(或者在收件人的情况下,它是否曾经存在过)。
根据您的用户访问邮件的方式(例如,如果他们通过 IMAP 协议访问邮件或使用基于 Web 的邮件阅读器,但如果他们通过 POP-3 检索邮件则不行),您也许可以将邮件归档到他们单独的垃圾邮件文件夹中——也许作为他们帐户设置中的一个选项。
这可能是这三个选项中最好的一个。即便如此,邮件可能会在一段时间内仍然未被看到,或者只是被忽略,因为收件人或多或少定期扫描并删除他们“垃圾邮件”文件夹中的邮件。
正如您现在可能已经猜到的那样,解决此问题的唯一真正的解决方案是在 SMTP 对话期间从远程主机进行垃圾邮件和病毒过滤,当邮件被您的域的入站邮件交换器接收时。这样,如果邮件最终被证明是不需要的,您可以发出 SMTP 拒绝响应,而不是面临上述困境。结果是
您将能够在 SMTP 事务的早期停止大多数垃圾邮件的投递,在实际邮件数据被接收之前,从而节省您的网络带宽和 CPU 处理。
您将能够在投递失败时(例如,由于收件人地址无效)通知发件人,而不会直接生成附带垃圾邮件
我们将讨论如何避免由于拒绝从受信任的来源(例如邮件列表服务器或其他站点上的邮件帐户[1])转发的邮件而间接导致附带垃圾邮件。
您将能够保护自己免受来自他人的附带垃圾邮件的侵害(例如来自防病毒软件的虚假“您有病毒”消息)。
好了,你们现在可以放下手了。如果您之前站着,并且您的脚从您身下消失了,您现在也可以再次站起来了。
[1] | 如果您拒绝邮件,不受信任的第三方主机仍然可能生成附带垃圾邮件。但是,除非该主机是开放代理或开放中继,否则它大概只投递来自合法发件人的邮件,其地址是有效的。如果它是开放代理或 SMTP 中继 - 那么,您最好拒绝邮件,让它在他们的外发邮件队列中冻结,而不是让它在您的队列中冻结。最终,这应该给该服务器的所有者一个线索。 |