带有 dovecot-antispam 训练的 SpamAssassin

带有 dovecot-antispam 训练的 SpamAssassin

我正在尝试让 dovecot-antispam 与 SpamAssassin 的 sa-learn 协同工作。这是我的 Dovecot 配置:

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-antispam 记录的内容:

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 的文档没有提到任何有关退出代码的内容,所以我不知道应该从哪里开始调试它。

答案1

当您移动消息时,然后使用dovecot 的 UIDdovecot调用,因此没有足够的权限来更新贝叶斯数据库。sa-learnsa-learn

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

bayes_file_mode 0660

etc/spamassassin/local.cf文件中。

您还必须验证贝叶斯数据库是否已经具有权限 0660。然后重新启动spamassassin

相关内容