SpamAssassin与鸽舍反垃圾邮件培训

我正在尝试使用SpamAssassin的sa-learn与dovecot-antispam进行合作。 这是我的达夫科特configuration:

antispam_backend = pipe antispam_trash = trash;Trash;Deleted Items; Deleted Messages antispam_spam = Junk antispam_pipe_program_spam_arg = --spam antispam_pipe_program_notspam_arg = --ham antispam_pipe_program = /usr/bin/sa-learn antispam_pipe_tmpdir = /tmp 

但是,我似乎无法得到它的工作。 当我尝试从我的垃圾邮件文件夹移动我的MUA中的假阴性时,出现以下错误:

 [SERVERBUG] Failed to send mail 

这就是dovecot-antispamlogging的内容:

 imap: antispam: mail copy: src spam: 1, dst spam: 0, src unsure: 0 imap: antispam: running mailtrain backend program /usr/bin/sa-learn imap: antispam: running mailtrain backend program /usr/bin/sa-learn imap: antispam: running mailtrain backend program parameter 1 --ham imap: antispam: run program failed with exit code 2 

显然, sa-learn用代码2退出。但是,我不知道这意味着什么。 sa-learn的文档没有提及退出代码的任何内容,所以我不知道应该从哪里开始debugging。

当你移动消息时, dovecot调用dovecot的UID进行sa-learn ,所以sa-learn没有足够的权限来更新贝叶斯数据库。

您必须将dovecot的用户添加到spamd组,并确保您拥有下一行

 bayes_file_mode 0660 

etc/spamassassin/local.cf文件中。

另外,您必须validation是否bayes数据库已具有权限0660.然后重新启动spamassassin