===== 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.