Назад | Перейти на главную страницу

SpamAssassin с обучением dovecot-антиспаму

Я пытаюсь заставить dovecot-антиспам работать с sa-learn SpamAssassin. Это моя конфигурация 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 ничего не упоминается о кодах выхода, поэтому я не знаю, с чего начать отладку.

Когда вы перемещаете сообщение, то dovecot призвать sa-learn с UID голубя, поэтому sa-learn недостаточно прав для обновления байесовских баз данных.

Вы должны добавить dovecotпользователя spamd group и убедитесь, что у вас есть следующая строка

bayes_file_mode 0660

в etc/spamassassin/local.cf файл.

Также необходимо убедиться, что у баз данных Bayes уже есть разрешения 0660. Затем перезапустите spamassassin.