SpamAssassin是Apache发布的计算机程序许可证2.0,用于垃圾邮件过滤,基于内容的匹配规则。现在由Apache基金会维护。SpamAssassin使用多种垃圾邮件检测技术,包括DNS为基础和校验的垃圾邮件检测、贝叶斯过滤、外部程序、黑名单和在线数据库。该程序被集成到邮件服务器自动过滤所有邮件的网站。它也可以运行个人用户在自己的邮箱,被集成一些邮件程序。SpamAssassin是高度可配置的,如果作为全系统过滤器仍然可以配置为支持每个用户的喜好。2006年SpamAssassin被Linux新媒体奖授予“最佳的基于Linux的反垃圾邮件解决方案。
SpamAssassin是由贾斯汀·梅森对先前Mark Jeftovic所发展的filter.plx进行改造。梅森几乎改写所有Jeftovic的代码,并上传到SourceForge.net。2004年夏天该项目成为Apache软件基金会的项目。SpamAssassin的是一个Perl的应用程序.它可以作为一个运行独立的应用程序或另一个应用程序(如MailScanner, MIMEDefang, Amavis)的子程序或作为客户端的通信用守护进程。SpamAssassin的默认情况下,通过贝叶斯过滤试图加强其自己的规则,但贝叶斯学习是最有效方式是由实际用户来输入。
为此,SpamAssassin 提供命令行工具sa-learn, 会创建ham和spam文件夹,来训练SpamAssassin识别用户收到的各种不同的垃圾邮件,spam大都是垃圾邮件,ham是非垃圾邮件。SA-compile是一个实用程序与 SpamAssassin的作为版本3.2.0。它编译一个SpamAssassin的规则集到一个确定的有限自动机,让SpamAssassin的使用处理器功率更有效。
SpamAssassin可以通过许多方法来检验一封电子邮件到底是不是垃圾邮件:SpamAssassin检查电子邮件的首部信息是否符合各种Internet标准。SpamAssassin检查电子邮件的首部和内容部分的信息是否包含一些垃圾邮件中常见的、用各种语言写成的短语或是句子(例如:“快速致富”或是退定该邮件的一些方法描述)。SpamAssassin将首部和内容部分的“校验和”与多个垃圾邮件信息在线数据库中的“校验和”作比较来确认垃圾邮件。
SpamAssassin可以检查邮件发送者的IP地址是否在一些在线的站点列表中。使用人为指定的一些垃圾邮件(通常成为spam)和非垃圾邮件(通常成为ham)的例子来训练SpamAssassin识别用户收到的各种不同的垃圾邮件。SpamAssassin会优先排除那些愿意使用Hashcash形式的邮件发送者(使用Hashcash形式会作一些附加计算,消耗一些时间)。因为垃圾邮件发送者如果支持这些附加计算,就不能迅速发送大量垃圾邮件了。这是SpamAssassin 3.0中增加的新特性。