SpamAssassin是一个邮件过滤器,它部署在邮件服务器端,可以使用一系列的机制来确认垃圾邮件,可以在http://spamassassin.apache.org/downloads.cgi下载安装。它主要有如下一些特性:
适用范围广:SpamAssassin使用大量的本地和网络的测试来确认垃圾邮件特征。这使得垃圾邮件制造者在明确其制造的信息的可工作性时增加了难度。
自由软件,应用广泛:与其它流行的开源软件一样,爱好者可以广泛的应用和修改、发布,应用前景很好。
易于扩展:SpamAssassin将反垃圾测试和配置信息存储在纯文本中,这使得配置和增加新的规则相当容易。
灵活性:SpamAssassin将其逻辑封装在一个设计精良的、抽象化的API中,因此它可被集成到电子邮件数据流中的任何地方。SpamAssassin可被用于多种电子邮件系统中,其中包括:Procmail、Sendmail、Postfix、Qmail等。
易于配置:SpamAssassin几乎不需要用户的配置。用户不必用邮件帐户或邮件列表的成员资格详细信息来不断地更新SpamAssassin配置。一旦分类,站点和用户规则就可以被运用于垃圾邮件。而且规则可以适用于邮件服务器,并且在以后又可以使用用户自己的邮件用户代理应用程序。
SpamAssassin包括spamd守护进程和spamc客户端。虽然它包括SpamAssassin实用工具,但SpamAssassin文档建议使用spamc而非SpamAssassin来过滤邮件,因为spamc比SpamAssassin加载得更快。当SpamAssassin单独工作时,spamc调用spamd。spamd守护进程派生子进程; 当spamd运行时,ps除了显示spamd父进程外还显示几个spamd子进程:
# ps -ef | grep spam
root 4254 1 0 14:17 ? 00:00:02 /usr/bin/spamd -d -c -m5 -H -r ...
root 4256 4254 0 14:17 ? 00:00:00 spamd child
root 4257 4254 0 14:17 ? 00:00:00 spamd child
root 4689 4662 0 16:48 pts/1 00:00:00 grep --color=auto spam
spamc实用工具是一个过滤器:它从标准输入读取每个电子邮件,发送电子邮件到spamd进行处理,并把修改后的电子邮件写入到标准输出。spamd守护进程使用多种技术来识别垃圾邮件:
Headeranalysis(标题分析):检查疑似垃圾邮件的标题,有些垃圾邮件被人采用某种技巧处理后,可能会被误认为是合法的电子邮件。
Text analysis(文本分析):检查电子邮件正文中的垃圾邮件特征。
Blacklists(黑名单):检查名单,看看发件人是否在现有垃圾邮件发送者列表中。
Database(数据库):检查针对Vipul’s Razor(razor.sourceforge.net)的邮件签名,它是一个垃圾邮件跟踪数据库。
可以设置邮件服务器上的SpamAssassin,以使它处理传递到本地系统的所有电子邮件,然后再发送到用户。另外,每个用户可以从他们的邮件客户端运行SpamAssassin。无论哪种方式,本地系统必须运行spamd,并且必须通过这个守护进程使用spamc过滤每封电子邮件。