Используются системные пользователи, т.к. пользователям нужен доступ по ftp в домашние директории для редактирования sieve-фильтров, а поднимать LDAP/RDBMS мне было лень, точнее, хотелось оставить инсталляцию минимальной. MTA и оба MDA общаются через pipe-интерфейс, т.к. Dovecot совсем не умеет LMTP, а использовать 2 разных механизма (LMTP для Postfix -> DSPAM и pipe для DSPAM -> Dovecot) опять-таки не хотелось. Итак, конфиги:
Home /var/lib/dspam
Storage Driver? /usr/lib64/libhash_drv.so
Hash Auto Extend? on
Untrusted Delivery Agent? «/usr/lib64/dovecot/deliver -d %u»
Training Mode? teft
Test Conditional Training? on
Feature whitelist
Algorithm graham burton
PValue bcr
Preference «spamAction=tag»
Preference «signatureLocation=headers»
Preference «showFactors=off»
Preference «spamSubject= "
Notifications off
Local MX? 127.0.0.1
protocols = imap
shutdown_clients = yes
ssl_disable = yes
disable_plaintext_auth = no
mail_location = mbox:/mail/data:INDEX=~/mail/index
lock_method = fcntl
protocol pop3 {
}
protocol lda {
}
protocol imap {
}
auth default {
}
plugin {
Без дополнительных телодвижений такая конфигурация не обеспечивает ничего интересного, кроме дополнительных тормозов при анализе корреспонденции, результат анализа помещается в заголовок X-DSPAM-Result (Spam или Innocent). Но наличие плагина antispam (http://johannes.sipsolutions.net/Projects/dovecot-antispam) позволяет путем перемещения писем в папку SPAM и из нее обучать dspam, благодаря чему последний рано или поздно научится выставлять заголовки X-DSPAM-Result правильно. Можно ускорить этот процесс, если провести предварительное обучение с помощью утилиты dspam_corpus. Наконец, если каждый пользователь напишет у себя в mail/filter/filter.sieve (можно, впрочем, и глобальный фильтр для всех пользователей описать) нечто вроде:
то все, что DSPAM пометил как спам, пойдет прямиком в папку SPAM.