Я ищу способ для моих почтовых пользователей полностью управлять своим собственным обучением спаму. Прежде чем я перейду к этому, данные моего почтового сервера:
Debian 7.5, postfix 2.9.6, dovecot 2.1.7, amavisd-new 2.7.1, spamassassin 3.3.2
Итак, у каждого из моих пользователей в каждом домене есть папка нежелательной почты (/var/vmail/domain/user/.Junk
), куда они могут помещать спам, который не помечается как таковой. Тогда у меня есть этот сценарий:
#!/bin/sh
find /var/vmail -name .Junk -exec echo Examining {}... \; -exec sa-learn --dbpath=/var/lib/amavis/.spamassassin --spam {}/cur \;
У меня также есть папка, которую каждый пользователь назвал «Ложные срабатывания», куда они могут перетаскивать сообщения, ошибочно помеченные как спам, и у меня есть ежедневный сценарий для этого, который распознает его как ветчину и перемещает обратно в свой почтовый ящик.
#!/bin/sh
doveadm search -A mailbox 'False Positives' 2>/dev/null | while read user guid uid; do
doveadm fetch -u $user text mailbox-guid $guid uid $uid > /tmp/$guid-$uid.eml
doveadm move -u $user INBOX mailbox-guid $guid uid $uid
done
sa-learn --dbpath=/var/lib/amavis/.spamassassin --ham /tmp/*-*.eml
if ls /tmp/*-*.eml >/dev/null 2>&1; then
rm /tmp/*-*.eml
fi
У меня вопрос, правильно ли я это делаю? Есть ли способ лучше? Делает sa-learn
правильно работать с amavis? Я полагаю, пока я использую --dbpath=/var/lib/amavis/.spamassassin
вариант, он должен работать нормально.
Вы можете взглянуть на dspam. Он интегрируется с Dovecot и делает в основном именно то, что вы хотите, но «на лету», когда происходят операции перемещения (перемещение в нежелательную почту => спам, перемещение из нежелательной почты => ложное срабатывание).
Ваш подход выглядит нормально; Я делаю нечто подобное.
Два замечания:
--dbpath
это хорошо, что предотвращает распространенную ошибку настройки, когда SA использует БД в ~amavis
и sa-learn
записывает в другую БД в ~root
.Dspam выполняет байесовскую фильтрацию лучше, чем spam assassin. Многие другие механизмы фильтрации, такие как RBL, серые списки и проверки достоверности DNS, могут быть настроены из MTA (например, postfix). При таком подходе вы просматриваете содержимое электронной почты только после прохождения других тестов, что делает систему гораздо менее требовательной к ресурсам. Вы не получите такой же взвешенной комбинации, но при правильной настройке вы можете получить очень хорошую систему для рассылки спама, которая использует гораздо меньше ЦП и ОЗУ. Также плагин dovecot запускается при перемещении почты между папками, что намного лучше, чем наличие отдельных папок для обучения.