如何编写垃圾邮件过滤器

时间:2008-11-17 19:24:03

标签: java email-spam

我不得不写一个简单的垃圾邮件过滤器 我不确定我将如何做到这一点。

到目前为止,我已经提出了wordlist和域名过滤功能,它可以提供或删除高达某个阈值的点数。

例如,如果你是从黑名单中写下“v1agr4”,你会得到2分垃圾邮件,但如果你是从hotmail.com帐户写“v1agr4”,你会只获得1个“垃圾邮件点”。

你们有其他任何建议/资源吗?

这更多是关于学习垃圾邮件过滤器而不是开发企业级别的东西

6 个答案:

答案 0 :(得分:3)

这里有一些非常好的算法信息:

http://www.paulgraham.com/spam.html

http://www.paulgraham.com/better.html

但是,说真的,为什么重新发明轮子?

只需下载K9:http://keir.net/k9.html

答案 1 :(得分:3)

一些与贝叶斯垃圾邮件过滤相关的开源Java项目(LFSR Consulting提到):

C ++的一个额外内容:

答案 2 :(得分:1)

查看 Bayesian Spam Filtering

我知道perl有一个库,所以我假设java也有。

答案 3 :(得分:0)

答案 4 :(得分:0)

您可以将其委派给分布式服务。 Akismet是一个非常好的解决方案。

答案 5 :(得分:0)

编写垃圾邮件过滤器取决于您对可伸缩性的要求。

如果你想要一个可扩展的解决方案,那么内容过滤可能不是明智的选择,因为它非常消耗CPU和内存,你宁可选择基于信誉的过滤或基于黑名单的过滤,这将是一种方式服务器上的CPU更友好,写起来也更容易。

我写了一个a post on my blog,它解释了从程序员的角度编写垃圾邮件过滤器背后的想法,并涵盖了从基于内容的过滤到基于黑名单的过滤的所有选项。