使用bogofilter来清除垃圾邮件

ZDNet软件频道 时间:2004-02-20 作者:ZDNet China |  我要评论(9)
本文关键词:
不同清除垃圾邮件的产品有着不同程度的成功之处,随着清除垃圾邮件的程序员变得越来越聪明,新的程序不断产生,代替以前老的程序。
本文译自TechRepublic,未经许可请勿转载

不同清除垃圾邮件的产品有着不同程度的成功之处,随着清除垃圾邮件的程序员变得越来越聪明,新的程序不断产生,代替以前老的程序。许多程序使用具有多种规则的数据库来判断某些邮件是不是垃圾邮件,但是Bayesian邮件过滤器通过使用不同的算法来识别垃圾邮件,它的所有算法都要通过分析邮件信息中的内容来识别垃圾邮件。

有一种这样的工具,叫做bogofilter,它使用几种不同的方法来判断一个邮件是否是垃圾邮件。 Bogofilter是一个命令行工具,你可以在那些已经具有分类和过滤垃圾邮件功能的程序中使用它,比如procmail,它的工作就好像是判断这个邮件是否属于这些邮件列表一样。

Bogofilter非常容易操作。如果你使用procmail这个邮件过滤程序,在接近根目录的.procmailrc文件中加入这个工具,这样它就可以分析收到的每一封邮件。

# filter through bogofilter
:0fw
| bogofilter -u -e -p

:0:
* ^X-Bogosity: Yes, tests=bogofilter
spam

它把邮件看成基本的输入信息,并用bogofilter执行。Bogofilter 分析它所接收到邮件,给它加上标题,然后把它作为标准输出传递给procmail 。

接下来的规则X-Bogosity用于测试这个标题。如果bogofilter认为这个邮件是垃圾邮件,它把这个邮件归档,并命名为垃圾邮件。

因为你需要使bogofilter 能够识别出所有的垃圾邮件,而最初可能会收到一些不想收到的邮件,这些邮件并没有被过滤掉,你可以使用一种办法来升级bogofilter的垃圾邮件数据库,就是这封邮件作为垃圾邮件通知bogofilter。

例如,如果你使用mutt作为你的邮件接受软件,你可以通过下面的方法创建一些新的宏,告诉bogofilter你现在阅读的邮件是否垃圾邮件:

folder-hook . 'macro pager <f8>
        "|bogofilter -Ns s=spam "
        "Relearn a spam and store it to spam folder" '
folder-hook spam 'macro pager <f8>
        "|bogofilter -Sn s=inbox "
        "Relearn good message and store it in inbox" '

Mutt接受邮件,把这个邮件当作基本的输入传给bogofilter,并输入一条控制语句,告诉bogofilter这封邮件不是垃圾邮件。对于不同的邮件接受软件而言,宏可能是不一样的,但是你可以使用同样的bogofilter命令行来做同样的事情。



责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134