1.1. 为何在 SMTP 事务期间过滤邮件?

1.1.1. 现状

如果您收到垃圾邮件,请举手。保持举着。

如果您收到计算机病毒或其他恶意软件,也请举手。

如果您收到虚假的投递状态通知 (DSN),例如“邮件无法投递”“发现病毒”“请确认投递”等等,这些通知与您从未发送过的邮件有关,也请举手。这被称为附带垃圾邮件

最后这种形式尤其麻烦,因为它比“标准”垃圾邮件或恶意软件更难清除,而且此类邮件可能会让不具备解析邮件标头的超凡技能的收件人感到非常困惑。在病毒警告的情况下,这通常会导致收件人方面不必要的担忧;更普遍的情况是,常见的趋势是忽略所有此类邮件,从而错过合法的 DSN。

最后,我想让那些由于垃圾邮件或病毒扫描器的错误分类而丢失合法邮件到黑洞中的人抬起脚。

如果您之前站着,现在仍然站着,我建议您可能没有充分意识到您的邮件正在发生什么。如果您一直在进行任何类型的垃圾邮件过滤,即使只是手动将邮件移动到邮件阅读器中的垃圾箱,更不用说尝试使用原始的过滤技术,例如 DNS 黑名单(SpamHaus、SPEWS、SORBS...),那么您很可能丢失了一些有效的邮件。

1.1.2. 原因

垃圾邮件,就像许多其他贪婪的产物一样,是一种社会疾病。称之为富裕病,或者任何你喜欢的;低等生命形式试图摧毁更大的生态系统,如果成功,最终将毁掉它们自己的栖息地。

抛开更大的社会问题和哲学不谈:您——邮件系统管理员——面临着非常具体和现实的困境,即找到一种方法来处理所有这些垃圾邮件。

事实证明,传统的邮件处理和由邮件传输和投递软件的各个组件委派的方式存在一些局限性。在传统的设置中,一个或多个邮件交换器接受大多数或所有发往域内地址的传入邮件。通常,它们然后将邮件转发到一个或多个内部机器以进行进一步处理,和/或投递到用户的邮箱。如果这些服务器中的任何一个发现它无法执行请求的投递或功能,它会生成一个 DSN 并返回给原始邮件中的发件人地址。

随着组织开始部署垃圾邮件和病毒扫描器,他们经常发现最容易的途径是将这些扫描器集成到邮件投递路径中,当邮件从传入的邮件交换器传输到内部投递主机和/或软件时。例如,过滤垃圾邮件的常见方法是通过路由邮件通过 SpamAssassin 或其他软件,然后再将其投递到用户的邮箱,和/或依赖用户邮件用户代理中的垃圾邮件过滤功能。

此时处理被分类为垃圾邮件或病毒的邮件的选项是有限的

1.1.3. 解决方案

正如您现在可能已经猜到的那样,解决此问题的唯一真正的解决方案是在 SMTP 对话期间从远程主机进行垃圾邮件和病毒过滤,当邮件被您的域的入站邮件交换器接收时。这样,如果邮件最终被证明是不需要的,您可以发出 SMTP 拒绝响应,而不是面临上述困境。结果是

好了,你们现在可以放下手了。如果您之前站着,并且您的脚从您身下消失了,您现在也可以再次站起来了。

注释

[1]

如果您拒绝邮件,不受信任的第三方主机仍然可能生成附带垃圾邮件。但是,除非该主机是开放代理开放中继,否则它大概只投递来自合法发件人的邮件,其地址是有效的。如果它开放代理或 SMTP 中继 - 那么,您最好拒绝邮件,让它在他们的外发邮件队列中冻结,而不是让它在您的队列中冻结。最终,这应该给该服务器的所有者一个线索。