Apache SpamAssassin是一套垃圾邮件过滤软件。它採用多種垃圾郵件檢測技術,包括基於DNS和校驗和模糊匹配的垃圾郵件檢測、貝葉斯過濾、外部程序、黑名單和在線資料庫檢測。它在Apache许可证2.0下发行,2004年起也是Apache软件基金会的一员。
該程序可被整合到郵件伺服器以為網站自動過濾所有郵件。它也可以由個人用戶在自己的郵箱運行,同時與一些郵件程序有集成。Apache SpamAssassin可配置性很高,即使作為全系統過濾器也仍然可以對每個用戶的偏好進行個性化配置。
2006年SpamAssassin被Linux新媒體獎(New Media Award)授予“最佳的基於Linux的反垃圾郵件解決方案[1]。”
Apache SpamAssassin項目由賈斯汀·梅森創建,他對先前Mark Jeftovic自1997年8月起開發的一個早期程序filter.plx進行大量補丁更新。梅森幾乎改寫所有Jeftovic的代碼,並於2001年4月20日將最終的代碼庫上傳到SourceForge。
2004年夏天該項目成為Apache軟件基金會的項目,后官方更名为Apache SpamAssassin。
在超过三年的时间里,SpamAssassin 3.4.2都没有更新过,但开发表明“项目已更换一批新的开发人员,正在继续前进。”2019下半年,SpamAssassin 3.4.3发布。
2020年1月后期,SpamAssassin 3.4.4发布。这主要是一个安全性更新,而目前项目主要工作是发布4.0.0预览版。
SpamAssassin是一個基于Perl的應用程式(CPAN名称:Mail::SpamAssassin
),通常用于为一个或多个用户过滤全部入站邮件。它可以作為一個獨立運行的應用程序或另一個應用程序(如Milter、SA-Exim、Exiscan、MailScanner、MIMEDefang、Amavis)的子程序或作為与守護行程(spamd
)通信的客戶端(spamc
)。客户端/服务器或嵌入操作模式具有性能优势,但某些情况下也可能造成更多安全风险。
一般地,此程序的任一变种可被配置为通用邮件过滤程序,或者由支持这项功能的邮件程序用户代理在新邮件到达时直接调用。调整用户的procmailrc
配置文件,邮件过滤程序(如procmail)可以将所有入站邮件通过管道传输到Apache SpamAssassin。
Apache SpamAssassin還支持:
通过为Apache SpamAssassin编写Perl插件,更多过滤方法可以相当容易地添加。
在用户或管理员“投喂”非垃圾邮件(ham)和垃圾邮件(spam)样本以让过滤系统了解两者的差异时,Apache SpamAssassin借助贝叶斯过滤增强自己的过滤规则。为此,SpamAssassin提供命令行工具sa-learn
,可以在用户指导下训练SpamAssassin识别单个邮件或整个信箱是否为垃圾邮件。
will help score future e-mails based on this learning to improve the accuracy.
一般地,用户会将未识别的垃圾邮件移至一个独立的文件夹,然后分别对非垃圾邮件与垃圾邮件文件夹运行sa-learn
。如果邮件用户代理有支持,{{mono>sa-learn}}可以为单个邮件被调用。不论通过哪种方式执行学习,SpamAssassin的贝叶斯测试有助于为之后的邮件基于这种学习评分,以提高精度。
Apache SpamAssassin是自由开源软件, 在Apache许可证2.0下授权。3.0之前的版本在艺术许可协议与GNU通用公共许可证下双重授权。
sa-compile
是一個Apache SpamAssassin的內置實用程序。它将一個SpamAssassin規則集編譯為確定有限狀態自動機,讓SpamAssassin更高效地利用處理器算力。
测试Apache SpamAssassin
[编辑]
Apache SpamAssassin被设计由GTUBE,一个类似于EICAR反病毒测试文件的68字节字符串触发。如果这个字符串被插入一封RFC 5322格式化的邮件信息且被传过Apache SpamAssassin引擎,则会触发Apache SpamAssassin,权重标记为1000。