5.2.17
01/18/2018
Last Modified 10/11/2016 by Hanns Mattes
SieveScripts Reload Page

Sieve


Sieve ist eine Sprache, die zum Konfigurieren von Mailfiltern auf Mailservern entwickelt wurde. Sieve ist spezifiziert worden, um Nutzern die Möglichkeit zu geben, auf einfache Art eigene Regeln zum Filtern von E-Mails zu definieren. Man kann zum Beispiel mit wenig Aufwand erreichen, dass alle Nachrichten eines bestimmten Absenders in einem bestimmten Ordner des Postfachs landen - oder auch gleich gelöscht werden.

SieveScripts werden schon während der Zustellung der E-Mail am Posteingangsserver ausgeführt, man muss also nicht in jedem sonst genutzten Mailprogramm einen Regelsatz zusammenbauen.

Sowohl RoundCube als auch Horde bieten komfortable Schnittstellen an, um eigene Regeln zu erstellen und verwalten. Man sollte sich für eins der Programme entscheiden und dabei bleiben: Beide legen die Regelsätze intern in einer Datenbank ab und merken nicht, wenn der echte Regelsatz auf dem Server geändert worden ist. Im schlimmsten Fall wundert man sich, das eine Regel nicht greift, weil man sie versehentlich mit dem jeweils anderen Programm gelöscht hat.

Hartgesottene können auch selbst Sieve-Skripte schreiben und mit einem geeigneten Programm auf den Server laden. Thunderbird bietet ein entsprechendes Addon.

Filterregeln werden genutzt, um bestimmte Header-Einträge zu erkennen und anschließend eine bestimmte Aktion auszulösen. Man kann also zum Beispiel nach bestimmten Absendern, Betreff-Zeilen und so weiter eine Nachricht einstufen und anschließend zum Beispiel weiterleiten, als gelesen markieren, löschen oder verschieben lassen. In Ingo, der Filtermanager von Horde, und dem Filtermanager von RoundCube, der dort unter "Einstellungen" zu finden ist, kann man ein wenig stöbern und sich ansehen, was alles möglich ist.

Oft genutzte Filterregeln

Weiterleitungen

Mit Sieve kann man Mails von seinem Account weiterleiten. Das kann nützlich sein, um zum Beispiel auch auf einem "Büro-Account" die Nachrichten vom privaten Konto zu empfangen. Ingo bietet zum Beispiel eine schon vorbereiteten Eintrag an, der nur noch aktviert werden muss.

Auslieferung in Unterordner

Die Funktion macht es möglich, Nachrichten nach bestimmten Kriterien in Unterordner zu verschieben. Man kann zum Beispiel bestimmte Newsletter in bestimmten Unterordnern sammeln. Extrem nützlich, um im Mailkonto den Überblick zu behalten.

Auto Responder

Mit Sieve kann man automatisiert E-Mails beantworten. Die wahrscheinlich häufigste Anwendung sind die allseits beliebten Abwesenheits-Benachrichtigung: "Bin im Gegensatz zu Dir armen Hund im Urlaub, Deine Anfrage muss warten. Beste Grüße" und so. Auch da gibt es in Ingo ein Muster.

Beispiele

  • Ein Beispiel, mit dem dämliche Fehlermeldungen von GMX wortlos gelöscht werden:

# GMX-Killer
        if body :comparator "i;ascii-casemap" :contains "(nemesis mail header analyzer); Detail=V3;"  {
          discard;
          stop;
      }

  • Eine Weiterleitung:

# Weiterleitung
    if true {
        redirect "hanns@example.com";
        stop;
    }

  • Ein Newsletter soll in einen Unterodner sortiert werden:

# FAZ-Newsletter
    if address :all :comparator "i;ascii-casemap" :contains "From" "newsletter@nl.faz.net"  {
    fileinto "INBOX/Mailinglisten/FAZletter";

Vorsicht

Sieve ist wie jede Computersprache: Sie nimmt Dich beim Wort. Deswegen kann man sich auch in den Fuß schießen, also sollte man sich seine Regeln gut überlegen.

Ein Beispiel: Ich will alle Mails von joe@example.com lesen, aber alle anderen Nachrichten von example.com löschen. Also habe ich zwei Regeln, die sinngemäß so aussehen:

  1. joe@example.com OK
  2. example.com DELETE

Alles bestens. Eine Nachricht wird untersucht, es wird festgestellt, dass sie von joe@example.com stammt, sie wird akzeptiert und die Abarbeitung weiterer Regeln wird gestoppt. Wird festgestellt, dass die Mail nicht von Joe ist, dann wird die nächste Regel aufgerufen und im Fall eine Treffers die Nachricht gelöscht.

So aber wird das nix:

  1. example.com DELETE
  2. joe@example.com OK

Beim Test wird festgestellt, dass die Mail von example.com stammt - sie wird in den Orkus geschickt. Und damit wird niemals geprüft, ob es sich um eine eigentlich gewollte Mail von Joe handelt.