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