Я пытаюсь заставить 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
.