关于Bayesian过滤器

这邮件服务器提供一个界面让系统管理员可以把一个Bayesian过滤器联结到本地邮件递送代理程序(LMDA)。Bayesian过滤器是用统计处理方式来辨认是否是垃圾邮件。若要知道更详细有关Bayesian过滤器的工作原理,可以参考Paul Graham的A Plan For Spam

这服务器捆绑了bogofilter version 0.11.2。若要更详细的了解 bogofilter 请到这儿来看。

为LMDA配置Bayesian过滤器

你必须启动,才能让LMDA模块使用Bayesian过滤器的功能。选择启动复选框,再选择DLL或EXE形态的Bayesian过滤器。一个DLL形态的Bayesian过滤器是一个可以载入LMDA模块的内存里头的软件库。而一个EXE形态的Bayesian过滤器是一个独立的二近制码可执行程序。当这可执行程序处理每个邮件时会被LMDA模块开动。一般来说,一个DLL形态的Bayesian过滤器比一个独立的EXE形态的Bayesian过滤器运行的快。

配置DLL形态的Bayesian过滤器

当你安装邮件服务器时,软件库版的bogofilter将会自动安装好。这软件库是安装在以下地址:

软件库必须出现一个可以被LMDA模块呼叫的含数。Libbogo软件库提供的含数名称是"iems_bogofilter"。

配置EXE形态的Bayesian过滤器

如果你要使用EXE形态的Bayesian过滤器,你要提供命令行参数和由过滤器提供的返回码。这返回码标示了过滤结果。过滤器命令行支持以下指令。

例子:
  1. | /usr/local/bin/myfilter -d %B
    展开成:
    | /usr/local/bin/myfilter -d /var/spool/iems/msgstore/john@company.com/.bayesian
  2. /usr/local/bin/myfilter -d %B -I %M
    展开成:
    /usr/local/bin/myfilter -d /var/spool/iems/msgstore/john@company.com/.bayesian -I /var/spool/iems/mqueue/01/1.msg

除了过滤器的命令行,你必须定义你的Bayesian过滤器用以表示各种状况的返回码。这返回码是0到场55的整数。如果你的过滤器可以在同样状况下返回不同的码,请用豆点分开各个码。以下是4个状况:

  1. 辨别为非垃圾邮件
  2. 辨别为垃圾邮件
  3. 未辨别的邮件
  4. 错误状况
你的过滤器必须为以上前两个状况提供返回码。

有关Bayesian过滤器学习机

Bayesian过滤器是使用统计方法进行过滤垃圾邮件。它要经过训练才能更准确的辨别垃圾邮件。在邮件服务器里头,有个名为bayesianlearn的程序是为了这目的的。这bayesianlearn程序是一个命令行实用程序。它在每个信息存储器用户预先设定好的邮箱文件夹里查看垃圾邮件和好邮件并将每个邮件呈送到Bayesian过滤学习机进行统计学习。你的Bayesian过滤器学习机必须支持以下功能:

  1. 能增加一个邮件到好邮件列表里头。
  2. 能从好邮件列表里头删除一个邮件。
  3. 能增加一个邮件到垃圾邮件列表里头。
  4. 能从垃圾邮件列表里头删除一个邮件。
当bayesianlearn程序被启动时,它为每个信息存储器用户执行以下工作:
  1. 读取被信息存储器用户设定为好邮件文件夹的文件夹名称。
  2. 对在好邮件文件夹里的每个邮件:
  3. 读取被信息存储器用户设定为垃圾邮件文件夹的文件夹名称。
  4. 对在垃圾邮件文件夹里的每个邮件:

配置Bayesian过滤器学习机

如果你要配置Bayesian过滤器学习机的命令行参数。过滤器学习机命令行支持以下指令。

LMDA模块和bayesianlearn程序有一个对锁机制。当LMDA不能取得锁时,它会持续的尝试直到超时(TIMEOUT、默认值为15分钟)。当LMDA达到超时时,它会发一封提醒的邮件给邮局负责人的帐户并终止尝试。假若你收到这样的提醒邮件,你必须检查为何bayesianlearn程序不能让出锁来。也许有bayesianlearn程序有什么问题,而必须以人工方式终止bayesianlearn程序。若要终止bayesianlearn程序,请先从每个信息存储器用户的HOME目录下删除“bayesian.lock”文件,之后再启动LMDA。