Dovecot Antispam-Plugin 2


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


Hinterlasse einen Kommentar zu Florian Schaal Antworten abbrechen

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

2 Gedanken zu “Dovecot Antispam-Plugin

  • Martin

    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!

    • Florian Schaal Autor des Beitrags

      Hi,

      the Antispam plugin from dovecot is deprecated, please see HowTo/AntispamWithSieve how to replace it with IMAPSieve and this tutorial is quite old.