我正在尝试使用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 。