Mit dem Antispam-Plugin von Dovecot können neue Spam-Mails per Hand in einen eigenen IMAP-Ordner geschoben werden.
Mails die in diesen Ordner verschoben werden, lernt spamassassin als Spam-Mails. Wird eine Mail aus diesem Ordner verschoben (z.B. INBOX, weil es doch kein Spam ist), lernt spamassassin, dass es sich dabei um HAM handelt (gute Mail). Ich verwende einen eigenen Ordner SPAM und nicht den IMAP-Ordner Junk, in den Spam-Mails durch ISPConfig verschoben werden können.
Da sich das Lernen von Spam immer auf alle User auswirkt, ist hier etwas Vorsicht geboten, wenn auch fremde Mailboxen auf dem Server gehostet werden. Dann empfiehlt es sich evtl., einen separaten Ordner (z.B. SPAM) zu verwenden.
Die folgende Installation setze ich auf Server mit Debian Jessie und ISPConfig 3.1 ein.
Die Installation erfolgt über apt-get:
apt-get install dovecot-antispam
Danach wird das Plugin über /etc/dovecot/dovecot.conf
in Dovecot eingebunden und konfiguriert.
1. mail_plugins
erweitern
- mail_plugins = notify replication quota antispam
2. Je nach Version von ISPConfig muss protocol imap
angepasst werden:
- protocol imap {
- mail_plugins = imap_quota antispam
}
3. Plugin in Doveoct einrichten:
- plugin {
- antispam_verbose_debug = 0
- antispam_backend = pipe
- antispam_spam = SPAM
- antispam_pipe_program_spam_arg = –spam
- antispam_pipe_program_notspam_arg = –ham
- antispam_pipe_program = /usr/bin/sa-learn-pipe.sh
}
4. /usr/bin/sa-learn-pipe.sh
erstellen:
- #!/bin/bash
pid=$$
{
echo “$(date) ${pid}-start ($*) /tmp/sendmail-msg-$$.txt”
# set -x
# id -a
# env
# cat > /tmp/sendmail-msg-${pid}.txt
/usr/bin/sa-learn “$@” /tmp/sendmail-msg-${pid}.txt
echo “$(date) $$-end rc=$?”
} >/tmp/antispam.${pid}.log 2>&1
cat /tmp/antispam.${pid}.log >>/tmp/sa-learn-pipe.log
rm -f /tmp/antispam.${pid}.log /tmp/sendmail-msg-${pid}.txt
true
exit 0
und die Rechte passend setzen:
chmod 755 /usr/bin/sa-learn-pipe.sh
chown vmail.vmail /usr/bin/sa-learn-pipe.sh
5. optional Namespace in /etc/dovecot/dovecot.conf
definieren:
- namespace inbox {
- inbox = yes
- mailbox SPAM {
- auto = subscribe # autocreate Spam and autosubscribe
}
}
Oder den Ordner explizit für Junk nutzen:
- namespace inbox {
- inbox = yes
- mailbox SPAM {
- auto = subscribe # autocreate Spam and autosubscribe
special_use = \Junk
}
}
6. Dovecot neu starten
Um den Ordner für alle IMAP-Konten zu bestellen, kann doveadm genutzt werden:
doveadm mailbox subscribe -A SPAM