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
Danke für die Anleitung! Habe das auch so umgesetzt (Debian Buster), nur kann ich keine Mails in dem SPAM-Ordner verschieben.
Die Mails die dort hingeschoben werden (mittels MUA Thunderbird) hüpfen gleich wieder in die InBox zurück – auch über Rundcube kein Erfolg. Die üblichen verdächtigen Logfiles habe ich schon durchgekämmt, brauchbare Infos habe ich leider nicht herausgefunden. Keine Meldungen in Bezug auf den Ordner “SPAM”.
Was ich herausgefunden habe: den Ordner kann ich nicht abbestellen, wenn ich ihn abbbonieren möchte dann wird er gleich wieder als abboniert angezeigt. Es scheint möglicherweise was mit den Rechten zu tun zu haben, allerdings
ls -la in /var/vmail/cutomer1/office/Maildir
zeigt
drwx—— 5 vmail vmail 4096 Jan 10 14:49 .SPAM
Kann wer einen Tipp geben an was das scheitert? Danke schon mal im Voraus!
Hi,
the Antispam plugin from dovecot is deprecated, please see HowTo/AntispamWithSieve how to replace it with IMAPSieve and this tutorial is quite old.