Прямо сейчас я использую spamd для оценки спама, а затем procmail, чтобы поместить его в папку .Spam Maildir пользователя, а затем вручную запускаю sa-learn на .LearnAsSpam и .LearnAsHam, а затем также вручную просто удаляю все в этих папках. Очевидно, должен быть способ получше, и я просто не знаю, что это такое.
Есть ли лучшая цепочка инструментов для обработки спама, которая обрабатывает эти детали?
Я использовал следующий подход :
MTA - это exim
, который передает копию сообщения spamassassin
из DATA ACL. SA
возвращает оценку и не выполняет никаких модификаций сообщений или маршрутизации. Если рассчитанная оценка выше порога, exim
добавляет к сообщению специальный заголовок (X-Spam-Detected: YES).
Затем сообщение маршрутизируется для локальной доставки через dovecot
delivery
. В Dovecot
установлен плагин pidgeonhole
, который является реализацией движка sieve
. Когда сообщение удовлетворяет некоторым условиям (например, существует заголовок «X-Spam-Detected») pidgeonhole
сохраняет сообщение во вложенной папке папки «Входящие»:
if exists "X-Spam-Detected"
{
fileinto "Junk";
stop;
}
Если сообщение обнаружено неверно (ложноположительное или ложноотрицательное) Пользователь может переместить сообщение в нужное место. Dovecot
имеет еще один плагин, называемый антиспам
, который отслеживает перемещение сообщений. Когда сообщение перемещается В подпапку «Спам», для этого сообщения автоматически запускается sa-learn --spam
. Когда сообщение перемещается ИЗ подпапки «Спам», запускается sa-learn --ham
.
Старые сообщения могут быть автоматически удалены с помощью утилиты doveadm
:
doveadm expunge -A mailbox Junk savedbefore 31d