Dovecot Antispam-Plugin


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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *