E-Mail-Filterung · 4 min read · Dec 29, 2025

SIEVE Sprache für die E-Mail-Filterung Schnellübersicht

SIEVE Sprache für die E-Mail-Filterung Schnellübersicht

Was ist SIEVE?

SIEVE ist eine Sprache, die zur E-Mail-Filterung erstellt und verwendet wird und die Filtermöglichkeiten erweitert, die normalerweise von Mailservern oder Antispam-/Antivirus-Anwendungen bereitgestellt werden. Sie funktionieren im Wesentlichen, indem sie verschiedene Schlüssel mit unterschiedlichen Vergleichsoperatoren und Vergleichsmethoden gegen die Header einer E-Mail-Nachricht vergleichen. Basierend auf dem Ergebnis des Vergleichs können Sie verschiedene Aktionen auf die entsprechende E-Mail-Nachricht anwenden, d.h. ablehnen, verwerfen, umleiten usw.

Diese Sprache bietet eine äußerst flexible Filtermethodik, da Benutzer beliebig viele Skriptfilter gemäß ihren Bedürfnissen definieren können. Sie wurde so konzipiert, dass sie leicht auf einem E-Mail-Client oder Mailserver (wie Sendmail, Qmail, Axigen usw.) implementiert werden kann. Die Verwendung von SIEVE-Skripten hängt nicht vom Zugriffsprotokoll, der Mail-Architektur oder dem Betriebssystem ab.

SIEVE ist als vorgeschlagener Internetstandard konzipiert, das Ergebnis eines Multi-Vendor-Engagements, das seit mindestens 1994 in verschiedenen technischen und standardspezifischen öffentlichen und privaten Sitzungen diskutiert wird.


Warum SIEVE-Filter verwenden

Der E-Mail-Verkehr für die meisten Benutzer hat zugenommen, bedingt durch die verstärkte Nutzung von E-Mails, das Auftreten von unerwünschten E-Mails als Werbeform und die verstärkte Nutzung von Mailinglisten.

Es gibt eine Reihe von Gründen, das SIEVE-Filterungssystem zu verwenden:

  • Sie können effiziente und flexible Regeln erstellen. Skripte, die in SIEVE geschrieben sind, werden während der endgültigen Zustellung ausgeführt, wenn die Nachricht in das für den Benutzer zugängliche Postfach verschoben wird. Daher ist es sinnvoll, beim Einlagern von E-Mails in das Benutzerpostfach zu sortieren.
  • SIEVE-Skripte sind eine sichere Filtermethode, da sie nicht auf den E-Mail-Inhalt zugreifen, sondern nur Informationen aus dem E-Mail-Header extrahieren und Aktionen gemäß den vordefinierten Regeln ausführen.
  • Als Ergänzung zu Antispam- und Antivirus-Anwendungen können Sie SIEVE-Skripte auch verwenden, um alle legitimen E-Mails zu filtern, wodurch Geschwindigkeit und Effizienz bei der Nutzung der E-Mail-Kommunikation gewonnen werden.

Die SIEVE-Sprache

1. Allgemeine Aspekte

SIEVE hat eine feste Form, die als Standard beschrieben ist, kann jedoch durch die Verwendung von Erweiterungen verbessert werden. Der Erweiterungsmechanismus funktioniert, wenn das System diese Erweiterungen implementiert. Um eine Erweiterung zu verwenden, muss sie zu Beginn der Datei (des Skripts) mit einer require-Klausel beworben werden.

require "extension_name"    
oder    
require ["extension_name1", "extension_name2"]

Die Struktur von SIEVE, wie im Standard beschrieben, definiert 5 Aktionen: keep, fileinto, reject, discard, redirect, die selbsterklärend sind. Es definiert auch 3 Steuerbefehle:

  • - der die Verarbeitung bis zu diesem Punkt stoppt
  • -Struktur
  • require-Befehl - der eine Erweiterung der Sprache definiert.

Die if-Struktur hat die Form:

if

elsif

else

wobei ein Block ein Block von Befehlen (Aktionen und Steuerbefehlen - einschließlich anderer ifs) ist.

Im Standardformat, ohne Erweiterungen, kann der Test einer der folgenden sein:

  • address - testet eine Menge von Adress-Headern gegen eine Menge von Schlüsseln unter Verwendung verschiedener Vergleichsmethoden;
  • envelope - optionaler Test;
  • header - testet eine Menge von Headern gegen eine Menge von Schlüsseln unter Verwendung verschiedener Vergleichsmethoden;
  • true, false – Konstanten;
  • allof - logisches und zwischen mehreren Tests;
  • anyof - logisches oder zwischen mehreren Tests;
  • not - Negation eines Tests;
  • exists - testet, ob eine Menge von Headern existiert;
  • size - testet die Größe einer Nachricht;

Ein Test kann 2 Werte annehmen: true oder false.

2. Beispiele

Ein einfaches Beispiel eines SIEVE-Skripts, das alle E-Mails, die “Spam” im Betreff haben oder von “[email protected]” empfangen werden, in den Spam-Ordner verschiebt, kann wie folgt geschrieben werden:

require "fileinto"  
      
if anyof(address :is ["From", "Sender"] "[email protected]", header :matches "Subject" "Spam")  
{  
    fileinto "Spam";  
}

Ein weiteres, komplexeres Beispiel ist ein Filter, der alle E-Mails ablehnt, die einen Virus haben und ausgehende E-Mails sind und keine eingehenden E-Mails. Dieses letzte Beispiel verwendet mehrere Erweiterungen, die implementiert werden müssen.

require ["envelope","virustest","relational","comparator-i;ascii-numeric","reject"];  
  
if allof(virustest :value "eq" :comparator "i;ascii-numeric" "5",  
    envelope :contains "From" ["domain1.org", "domain2.org"],  
    not envelope :contains "To" ["domain1.org", "domain2.org"])  {  
        reject "Diese E-Mail ist von domain.org an die Welt und enthält einen Virus";  
    }

Für eine detailliertere Präsentation der SIEVE-Sprache empfehlen wir Ihnen auch, die spezielle

RFC 3028

zu lesen.

SIEVE-Filter im AXIGEN Mailserver

Derzeit verwendet AXIGEN die SIEVE-Sprache zur Definition von Skriptfiltern. Verschiedene benutzerdefinierte SIEVE-Skripte können in jedes AXIGEN-Filterungssystem aufgenommen werden. Wenn sie in AXIGEN aktiviert sind, erhält jeder Filter einen Prioritätswert. Der Begriff Priorität wird verwendet, um die Reihenfolge der Filter in der Filterkette zu definieren. Das bedeutet, dass Filter mit höherer Priorität zuerst angewendet werden. Alle SIEVE-Filter können auf mehreren Ebenen aktiviert werden: Server, Domäne oder Konto/Mailingliste.

AXIGEN implementiert auch die Urlaubs-SIEVE-Erweiterung. Das bedeutet, dass SIEVE-Skriptdateien erstellt und angewendet werden können, um automatische Antworten im Urlaubsstil zu generieren. So können automatisch generierte Nachrichten gesendet werden, wenn der Benutzer des Kontos, für das der Urlaub gilt, im Urlaub, außer Haus oder allgemein für einen längeren Zeitraum abwesend ist. Obwohl es sich nicht um eine Sicherheitsfunktion handelt, ist die Urlaubs-Erweiterung eine zusätzliche Funktionalität, die über Skriptdateien verfügbar ist. Für eine einfache Implementierung der Abwesenheitsnotiz in unserem Mailserver siehe dieses Beispiel, das in unserer Wissensdatenbank verfügbar ist:

Für detaillierte Anweisungen zur SIEVE-Sprache und zur Implementierung von Skripten in AXIGEN siehe bitte unsere

Online-Dokumentation .

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.