每天有280亿封垃圾邮件被发送。这是一个很大的一部分,整个电子邮件流量和几乎所有的电子邮件帐户是幸免于不必要的广告邮件。到目前为止,唯一能保护你的邮箱不受它们侵害的方法就是一个好用的垃圾邮件过滤器。SpamAssassin也是这样一款垃圾邮件过滤器,但主要是其字面上的精挑细选算法和高度的灵活性,使其成为一款非常特别的软件。
简要概述
虽然现在整个团队都在研究这个软件,但SpamAssassin的基石是由Justin Mason打下的,他之前负责过一个类似的程序filter.plx。2001年,该程序部分被改编和重写,并更名为新项目 "Spamassassin"。自2004年起,它属于Apache软件基金会并持续开源。除了程序的开源性质外,还有一个许可证使程序成为自由软件,其私人和商业使用,例如作为其他付费软件的一个模块,是完全免费的。
该软件的一个主要优点是在使用层面上具有很高的灵活性,因为SpamAssassin既可以作为自己的应用程序使用,也可以作为另一个软件的子程序(模块)使用,还可以作为邮件守护程序的客户程序使用,或者作为对MDA(邮件发送代理)的调用,如Procmail。重要提示:即使软件的不同实例包含在分销链中,该标志并不意味着该软件将不被使用。 电子邮件 分析两次,这可以防止流程冗余,降低资源利用率。
这就是排序过程的工作原理
SpamAssassin根据一个积分系统工作。每一封收到的电子邮件都会根据某些标准进行分析,并分配分数,以表明它有多大可能是 垃圾邮件 行为。一个用户可调整的阈值定义了电子邮件被视为垃圾邮件并被分类的时间点。为了获得尽可能准确的分数,该方案有一整套不同的方法供其使用,如:。
- 基于DNS的白名单和黑名单
- 来自开源和商业供应商的校验和过滤器,如DCC或Vipul's Razor。
- 基于表达式过滤器 关键词 或关键词
- Hashcash系统(工作证明)
- DIM和SPF
- uribl.com等跟踪器输出的URL列表。
贝叶斯过滤器
除了或多或少的静态过滤系统外,SpamAssassin还在贝叶斯过滤器上应用了一种算法,这种算法能够从已经发送的垃圾邮件中 "学习 "某些启发式因素,即反复出现的、与众不同的元素,从而适应用户的行为。该系统基于Byesian的概率概念,但经常受到批评,因为未经学习的过滤系统经常产生假阳性。
为了防止这种情况的发生,建议先仔细检查被列为垃圾邮件的邮件。贝叶斯过滤器包含一个工具,可以通过sa-learn命令行访问,它可以用来搜索单个邮件或整个邮箱中的启发式方法。如果这个过程已经进行了几次,假阳性的数量就会大大减少。
当前的发展
在上次更新到3.3和3.4版本的过程中,SpamAssassin被赋予了一个重要的新功能,应该会对资源的使用产生重大影响。虽然事先已经进行了性能优化,但现在的程序表现得像一个确定性的有限自动机。基本上,硬件可以更好地适应DEA,因为可能的状态总是确定性地运行,即预先确定的。一个适当编程的系统--就像今天的服务器硬件--可以因此以时间紧迫的方式保留和释放资源。
对方案的支持
如前所述,程序代码的高度灵活性是一个独特的卖点,但SpamAssassin还拥有一个成功的API,可以与许多其他程序进行数据交换。在开源项目中,这些都是常用的电子邮件客户端Mozilla Thunderbird、KMail以及Novell Evolution或Citadel或Claws Mail等外来项目。在商业产品中,SpamAssassin已经集成在程序代码中。这是爱思华宝服务器、McAfee SpamKiller、Mac OS X Server 或 Sophos PureMessage 的情况。