===== SIEVE Filter =====
SIEVE ist eine Programmiersprache, die im Bereich Mail-Filterung zum Einsatz kommt. Mit Hilfe von Sieve kann man sehr detailliert ankommende E-Mails filtern und wegsortieren. Die Mailbox-Einstellungen, die man via [[http://ruhr-uni-bochum.de/loginID|loginID Verwaltung (RUBiKS)]] verändern kann, werden intern auch auf Sieve-Filterregeln abgebildet. Das heißt SIEVE-Filterregeln sind in irgendeiner Form immer im Einsatz.
==== Filter ändern ====
Um SIEVE-Filterregeln zu erstellen oder zu verändern, benötigt man ein Klienten-Programm, das mittels des "MANAGESIEVE"-Protokolls die aktuellen Einstellungen vom Mail-Server liest und Änderungen zurückschreibt.
* Im [[http://webmail.ruhr-uni-bochum.de/|RUB Webmail]] ist eine grafische Oberfläche (GUI) unter "Einstellungen" -> "Filter" zu finden.
* Für Mozilla Thunderbird gibt es ein [[https://addons.thunderbird.net/en-US/thunderbird/addon/sieve|Addon]], welches wahlweise eine (GUI) oder die Möglichkeit der Quelltexteingabe liefert. Dies ist einfach über den AddOn-Manager zu finden (Suchwort "Sieve").
Es ist empfehlenswert, sich einen eigenen Filtersatz unter einem neuen Namen anzulegen und nicht den Filtersatz ''rubiks'' zu verändern. Dieser wird bei Änderungen über die [[http://ruhr-uni-bochum.de/loginID|loginID Verwaltung (RUBiKS)]] überschrieben. Aktiviert man einen anderen Filtersatz, wird der Filtersatz ''rubiks'' zwar überschrieben aber nicht aktiviert.
==== SIEVE Beispiele ====
Im folgenden sind einige Beispiele zu SIEVE dargestellt, die demonstrieren, wie auf dem Mail-Server Standard-Funktionalitäten über die SIEVE-Befehle angesteuert werden.
Damit die Filter funktionieren, muss am Anfang festgelegt werden, welche Erweiterungen (SIEVE-Extensions) dieser Filter verwendet. Die Zeile
require [ "fileinto", "envelope", "subaddress", "mailbox", "vacation", "variables" ];
sollte für die meisten Beispiele ausreichend sein.
Die typische Struktur einer SIEVE-Anweisung hat die Form
if ....... {
ACTION;
ACTION;
.....
}
Typische Aktionen sind
* "fileinto" - Mail in einen Ordner kopieren
* "redirect" - Mail an ein andere Adresse umlenken
* "discard" - Mail nicht im Standardempfangsordner speichern
Die Aktion "stop" beendet die Interpretation der aktuellen Sieve-Befehle. Die aktuelle Mail wird aber noch in den Standard-Ordner geschrieben, es sei denn, man hat vor "discard" gesagt.
=== Spam aussortieren ===
Diese Regel sortiert Mails, die unsere Spam-Markierung enthalten in den Spam-Ordner (Dieser Ordner hat intern den Namen ''UCE-TMP''.):
if header :contains "X-RUB-Notes" "Spam" {
fileinto "UCE-TMP";
stop;
}
=== einfache Urlaubsbenachrichtigung ===
Automatische Antworten sollten nicht an jede Mail gehen, die eintrifft. Die ''X-RUB-Notes'' Kopfzeile entält eine entsprechende Markierung, wenn man nicht automatisch antworten sollte. Details zur ''X-RUB-Notes''-Kopfzeile finden sich [[postmaster_informationen:2013-09-02|hier]].
if not header :contains "X-RUB-Notes" ["Spam","Noautoreply"] {
vacation :subject "Auto: This is a recording..."
:addresses [
"vorname.nachname@ruhr-uni-bochum.de",
"vorname.nachname@rub.de",
"weiterer.alias@ruhr-uni-bochum.de",
"weiterer.alias@rub.de"
]
"I will not be reading my mail until May, 3rd.";
}
=== schönere Urlaubsbenachrichtigung ===
Hier eine Variante, die die Betreff-Zeile erweitert statt eine neue zu schreiben und die es auch ermöglicht, den Betreff im Mailtext zu verwenden:
if not header :contains "X-RUB-Notes" ["Spam","Noautoreply"] {
set "SUBJECT" "(no subject)";
if header :matches "Subject" "*" {
set "SUBJECT" "${1}";
}
vacation :subject "Auto: This is a recording... [Re: ${SUBJECT}]"
:addresses [
"vorname.nachname@ruhr-uni-bochum.de",
"vorname.nachname@rub.de",
"weiterer.alias@ruhr-uni-bochum.de",
"weiterer.alias@rub.de"
] "
I will not be reading my mail until May, 3rd. Your
mail regarding
\"${subject}\"
will be read when I return.
";
}
=== Selektive Urlaubsbenachrichtigung ===
Wenn man Urlaubsbenachrichtingungen nur für interne Adressen versenden möchte, kann man den oben genannten Code mit dem folgenden ''if''-Konstrukt klammern:
if address :domain :is "from" [ "ruhr-uni-bochum.de", "rub.de" ] {
...
}
=== Mail an Subadresse wegsortieren ===
Mails an ''vorname.nachname+postmaster@...'' werden in den Ordner "Postmaster" abgelegt.
if envelope :detail :is "to" "postmaster" {
fileinto "Postmaster";
stop;
}
Alternativ in einen Unterordner des Posteingangs:
if envelope :detail :is "to" "postmaster" {
fileinto "INBOX/Postmaster";
stop;
}
==== Managesieve Einstellungen ====
Für das Thunderbind-Addon oder andere Managesieve Software benötigt man i.d.R. einige Daten für die Einstellungen:
* **Servername:** ''mail.ruhr-uni-bochum.de'' (IMAP-Servername)
* **Serverport:** ''4190''
* **Verbindungsicherheit:** TLS erzwingen
* **Authentifizierung:** IMAP Nutzername (loginID) und Passwort
==== Nerd-Informationen zu SIEVE ====
Die Programmiersprache SIEVE ist in einem RFC (request for comment) definiert: [[https://www.ietf.org/rfc/rfc5228.txt|RCF5228]]
Auf der Web-Seite [[http://sieve.info]] findet man weitere Informationen über die Programmiersprache SIEVE.