Dies ist die archivierte Version des Blogs vom 05.01.2017. Aktuelle Beiträge findest du unter thomas-leister.de
 

Mit dem Sieve Plugin für Dovecot können eintreffende E-Mails nach bestimmten Kriterien in besondere IMAP Ordner verschoben werden. Mails von bestimmten Personengruppen oder Nachrichten mit einem speziellen Betreff können auf diese Weise automatisch in vordefinierten Ordnern abgelegt werden, sodass die manuelle Sortierung entfällt. Diese Anleitung bezieht sich auf Ubuntu Server 14.04.

Zuerst wird die Dovecot Sieve Erweiterung installiert:

sudo -s
apt-get install dovecot-sieve

Das Sieve Plugin wird nun für den Local Delivery Agent (LDA) oder das LMTP aktiviert. Ich nutze LMTP statt LDA und bearbeite deshalb die Datei „20-lmtp.conf“ in /etc/dovecot/conf.d/:

protocol lmtp {
    # Space separated list of plugins to load (default is global mail_plugins).
    mail_plugins = $mail_plugins sieve
}

In der Hauptkonfiguration /etc/dovecot/dovecot.conf werden die Einstellungen für Sieve vorgenommen. Zuerst wird „sieve_before“ festgelegt. Dieses Script wird noch vor allen anderen ausgeführt – und unabhängig vom Benutzer. Es hat damit höchste Priorität. Das ist z.B. beim Filtern von Spam sinnvoll (z.B. Erkennen von Spam-Headern, die von Amavis gesetzt wurden…). Nachdem dieses Script durchlaufen wurde, werden die benutzerdefinierten Scripts ausgeführt. „sieve_dir“ beschreibt den Speicherort für alle Scripte, die ein Benutzer für sich anlegt. Da aber immer nur ein einziges Script aus dieser Sammlung aktiv sein kann, wird an einem anderen Ort ein symbolischer Link angelegt, der immer auf das aktuell zu nutzende (aktive) Script verweist. Wie dieser Link heißen und wo er sich befinden soll, wird durch „sieve“ in der letzten Zeile festgelegt.

plugin {
    sieve_before = /var/vmail/sieve/spam-global.sieve
    sieve_dir = /var/vmail/%d/%n/sieve/scripts/
    sieve = /var/vmail/%d/%n/sieve/active-script.sieve
}

Die Verzeichnisse und der Link für die benutzerdefinierten Scripts werden im vmail Userverzeichnis automatisch angelegt sobald Sieve vom Benutzer genutzt wird. Das globale SPAM Filterscript wird aber noch manuell angelegt:

cd /var/vmail
mkdir sieve
cd sieve
touch spam-global.sieve
chown -R vmail:vmail /var/vmail/sieve/

Denkt beim erstellen von Filterregel-Dateien immer daran, die Dateirechte korrekt zu setzen. Eigentümer soll vmail sein (unter dem Dovecot läuft)!

Das Spam-Filterscript „spam-global.sieve“  bekommt nun folgenden Inhalt:

require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
  fileinto "Spam";
}

Jetzt wird Dovecot neu gestartet, damit die Änderungen übernommen werden:

service dovecot restart

Mehr zum Thema Spam und Spamerkennung könnt ihr hier nachlesen: Einrichtung von Spamassassin

Wie ihr Filterregeln für Sieve schreibt, könnt ihr in auf dieser Seite nachlesen: https://secure.gold.ac.uk/sieve-new/howto.php

Besonders interessant ist der Autoresponder, den ihr über Sieve konfigurieren könnt. Wenn ihr über längere Zeit nicht via E-Mail erreichbar seid, könnt ihr darüber automatische Antworten verschicken.

Sieve Filter über den Mailclient verwalten (Managesieve)

Für die verschiedenen Mailclients können ggf. Sieve Addons installiert werden, womit die Verwaltung der Filter für den Nutzer ermöglicht wird. Damit ist er nicht mehr auf den Administrator des Servers angewiesen und kann seine Filter selbst hochladen oder ändern. Ermöglicht wird das über einen zusätzlichen Managesieve Server, der sehr einfach und schnell zu Dovecot hinzugefügt werden kann. Wie das funktioniert, erfahrt ihr hier:
Dovecot Sieve Manager (Managesieve) installieren und einrichten


Post published on 12. Juni 2014 | Last updated on 8. Dezember 2014
Tags:               

Diesen Blog unterstützen

Wenn Dir der Beitrag gefallen hat, freue ich mich über einen kleinen Obolus :-) Bitcoin QR Code

PayPal-Seite: https://www.paypal.me/ThomasLeister
Meine Bitcoin-Adresse: 15z8 QkNi dHsx q9WW d8nx W9XU hsdf Qe5B 4s

Siehe auch: Unterstützung

Informationen zum Autor

Thomas Leister

Geb. 1995, Kurzhaar-Metaller, Geek und Blogger. Nutzt seit Anfang 2013 ausschließlich Linux auf Desktop und Servern. Student der Automobilinformatik an der Hochschule für angewandte Wissenschaften in Landshut.

17 thoughts on “Sieve Mailfilter für Dovecot installieren und konfigurieren

  • Hey,
    vielen Dank. Ich hab gestern grade meinen Postfix und Dovecot fertig und wollte Sieve als nächste fertig machen. Hat mir geholfen!

  • Hallo,
    Danke für das Tutorial, ist die Anleitung mit dieser kompatibel:
    https://legacy.thomas-leister.de/internet/mailserver-ubuntu-server-dovecot-postfix-mysql/

    Gruß
    Basti

  • Hallo wie sieht das ganze den bei Dovecot & Plesk 12 aus? Wäre das so richtig?


    plugin {
    sieve_before = /var/qmail/sieve/spam-global.sieve
    sieve_dir = /var/qmail/%d/%n/sieve/scripts/
    sieve = /var/qmail/%d/%n/sieve/active-script.sieve

  • Hi,

    auch hier wieder einmal super wie umfangrecih du es beschreibst. Danke dafür!

    Es ist villeicht kleinlich, aber villeicht solltest du hier „chown -R vmail:vmail ./“ den kompletten Pfad angeben. Man stelle sich vor jemand vertippt sich und vergißt den Punkt ;-)

    Viele Grüße
    Frank

  • Nachdem ich fileinto „Spam“; in fileinto „INBOX.Junk“ umgebastelt habe, lief das Ganze einwandfrei.

    Was jetzt noch fehlt ist eine Anleitung, wie der geneigte SPAM-Bekämpfer mit sa-learn den SpamAssassin mit dem mdbox format verheiratet.

    Meine persönliche Wunschvorstellung wäre zunächst ein Script mit dem man sa-learn die Inhalte des Folders (in meiner Config IMAP.Junk in einem mdbox Container) als –spam (wie auch immer) unterschiebt.
    Direkt danach wir der Folder INBOX als –ham durchlaufen.
    Danach kann man noch ein Script darüber laufen lassen, das die als ‚gelöscht‘ getaggten Mails expunged und danach (eine Spezialität von mdbox) die Mails endgültig löscht.
    Wenn das mal funktioniert muss man das nur noch in einen Cronjob packen oder durch einen Button in roundcube für den User erreichbar machen – wenn dieser seine Mails sortiert hat (die schlechten ins Kröpfchen, die guten Mails bleiben im Töpfchen) Button anklicken, SpamAssassin lernt und räumt auf.
    Jetzt bereue ich es, auf mdbox als Speichersystem einzusetzen, mit Maildir hätte ich wohl (mit dem Container selbst) keine Probleme gehabt, mit mdbox stehe ich voll auf dem Schlauch, wie ich das hin bekommen könnte.

  • Hi,

    kann Emails auch anhand des Empfängers sortieren? Sprich wenn eine Email mit werbung@meinedomain.de reinkommt, dass diese direkt in einen Ordner werbung geschoben wird? Dieses jedoch dynamisch so dass jeder neue Aliases direkt sortiert wird?!

    Gruß Christian

    • Hallo Christian,

      Das dürfte so gehen:


      require ["fileinto","mailbox","variables"];

      if address :matches ["From"] "*@*.org" {
      fileinto :create "INBOX.${1}"; stop;
      }

      INBOX.${1} erstellt hierbei einen neuen suborder in Inbox mit jeweils dem part vor dem @
      ${2} ist die variable für die domain.

      Grüße Johannes

  • Danke Thomas für deine Klasse Anleitungen, habe schon einiges davon umgesetzt. Ich habe hier einen Mail-Server mit Posfix-Dovecot und möchte Sieve jetzt dazu nutzen um den Anhang einer eingehenden mail von zum Beispiel 2 definierten Absendern mit einem bestimmten Betreff direkt zu Drucken. Kann mit bitte jemand einen Tip geben wie ich das bewerkstelligen kann?
    Danke Gruss, Uli

  • Sehr gute Anleitungen Thomas. Habe schon ein paar davon als Vorlage für meine Server verwendet. Vielen Dank dafür!

    Gruß
    Christian

  • Super Anleitung!
    Habe aber ein Problem: das Test-Spam mail wird nicht in den Ordner SPAM verlegt sondern gleich von postfix gelöscht.
    Hab etliches probiert (pickup auf smtp-amavis umgestellt, fileinto auf INBOX.Junk) aber leider alles ohne Erfolg.
    Irgendwelche Gedanken?
    Danke!

    • Bei mir ist es fast genau so.
      Nur das nix gelöscht wird.
      Glaube mein fehler ist es

      „Das Sieve Plugin wird nun für den Local Delivery Agent (LDA) oder das LMTP aktiviert. Ich nutze LMTP statt LDA und bearbeite deshalb die Datei „20-lmtp.conf“ in /etc/dovecot/conf.d/:“

      das ich LDA benutze und da nicht die richtige Datei finde oder generell nicjt weiß was ich verwende

  • Statt in der Hauptkonfiguration /etc/dovecot/dovecot.conf den plugin-Block hinzuzufügen, habe ich die Datei /etc/dovecot/conf.d/90-sieve.conf geändert, die bei mir bereits vorlag.

  • Auch 2016 noch eine gute Anleitung, hat geklappt, danke vielmals dafür. Der Spam nervte ja schon, aber die komplexen Einstellungen eines Dovecots finde ich fast genau so schlimm *uääh* :-)

  • Hallo Thomas,

    vielen Dank für die Anleitung! Bei mir tut sich leider einfach nichts. Dovecot läuft ohne Probleme, aber die sieve-Skripte werden einfach (trotz Neustart) ignoriert. Kannst Du mir erklären, wie ich das Debuggen kann? Habe keine lmtp-Konfiguration auf dem Server vorgefunden, sondern eine lda-Konfiguration mit der Datei 15-lda.conf im conf.d-Unterverzeichnis in /etc/dovecot. Darin steht jetzt der Abschnitt „protocol lda { mail_plugins = $mail_plugins sieve }“. Und in der Datei 90-sieve.conf sind jetzt im Abschnitt „plugin“ die Zeilen „sieve = …“ und „sieve_dir = …“ drin. Es läuft Dovecot in der Version 2.1.7.

    Danke! LG,
    Thilo

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.