Managesieve: Unterschied zwischen den Versionen
K (→Speicherort) |
KKeine Bearbeitungszusammenfassung |
||
(3 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 16: | Zeile 16: | ||
* Ablehnen von Nachrichten | * Ablehnen von Nachrichten | ||
Eine ausführliche | Eine ausführliche Beschreibung der Filteraktivitäten ist zu finden auf der Dovecot-Seite [http://wiki.dovecot.org/LDA/Sieve#Features] | ||
Hierbei sind '''keine''' Aufrufe von '''externen Programmen''' möglich. Dadurch können keine unerwünschten Seiteneffekte entstehen. Dies grenzt <tt>sieve</tt> beispielsweise von <tt>[[procmail]]</tt> ab. | Hierbei sind '''keine''' Aufrufe von '''externen Programmen''' möglich. Dadurch können keine unerwünschten Seiteneffekte entstehen. Dies grenzt <tt>sieve</tt> beispielsweise von <tt>[[procmail]]</tt> ab. | ||
Zeile 32: | Zeile 32: | ||
Hat ein Nutzer bisher procmail benutzt, kann die <tt>.forward</tt> gelöscht werden oder durch eine neue <tt>.forward</tt> ersetzt werden mit folgendem Inhalt: | Hat ein Nutzer bisher procmail benutzt, kann die <tt>.forward</tt> gelöscht werden oder durch eine neue <tt>.forward</tt> ersetzt werden mit folgendem Inhalt: | ||
<syntaxhighlight lang="bash"> | |||
xyz00@h01:~$ cat .forward | |||
"| /usr/lib/dovecot/deliver " | |||
</syntaxhighlight> | |||
=== Sieve-Filter === | === Sieve-Filter === | ||
Zeile 39: | Zeile 41: | ||
Ein einfaches Sieve-Skript sieht wie folgt aus: | Ein einfaches Sieve-Skript sieht wie folgt aus: | ||
<syntaxhighlight lang="sieve"> | |||
require "fileinto"; | |||
if header :contains "X-Spam-Flag" "YES" { | |||
fileinto "Spam"; | |||
} | |||
</syntaxhighlight> | |||
Dieses Skript prüft ob in der Nachricht der Header "X-Spam-Flag" existiert und den Wert "YES" enthält. In diesem Fall wird die Nachricht in den Ordner "Spam" abgespeichert. | Dieses Skript prüft ob in der Nachricht der Header "X-Spam-Flag" existiert und den Wert "YES" enthält. In diesem Fall wird die Nachricht in den Ordner "Spam" abgespeichert. | ||
Zeile 56: | Zeile 60: | ||
Bei der Benutzung von Managesieve werden Filterdateien im Verzeichnis '''<tt>~/Maildir/sieve/</tt>''' gespeichert und per Symlink die aktive Filterdatei verlinkt. | Bei der Benutzung von Managesieve werden Filterdateien im Verzeichnis '''<tt>~/Maildir/sieve/</tt>''' gespeichert und per Symlink die aktive Filterdatei verlinkt. | ||
<syntaxhighlight lang="bash" line> | |||
xyz00@h01:~$ ls -al | |||
drwxr-xr-x 5 xyz00-max xyz00 4096 Nov 16 07:28 . | |||
drwxr-xr-x 28 xyz00-max xyz00 4096 Oct 22 23:06 .. | |||
lrwxrwxrwx 1 xyz00-max xyz00 29 Nov 16 07:28 .dovecot.sieve -> Maildir/sieve/einfilter.sieve | |||
</syntaxhighlight> | |||
Andere Filterdateien können im Flterverzeichnis gespeichert sein, aber nur die Datei, die wie oben gezeigt verlinkt ist, ist die aktive Filterdatei. | Andere Filterdateien können im Flterverzeichnis gespeichert sein, aber nur die Datei, die wie oben gezeigt verlinkt ist, ist die aktive Filterdatei. | ||
<syntaxhighlight lang="bash" line> | |||
xyz00@h01:~$ ls -al Maildir/sieve | |||
drwxr-xr-x 5 xyz00-max xyz00 4096 Nov 16 07:28 . | |||
drwxr-xr-x 28 xyz00-max xyz00 4096 Oct 22 23:06 .. | |||
-rw------- 1 xyz00-max xyz00 210 Nov 16 07:28 einfilter.sieve | |||
-rw------- 1 xyz00-max xyz00 321 Nov 16 07:28 nocheinfilter.sieve | |||
-rw------- 1 xyz00-max xyz00 99 Nov 16 07:28 weitererfilter.sieve | |||
</syntaxhighlight> | |||
=== Managesieve === | === Managesieve === | ||
Zeile 105: | Zeile 113: | ||
Hierzu muß die <tt>.forward</tt> zunächst mit einem Aufruf für procmail zu füllen: | Hierzu muß die <tt>.forward</tt> zunächst mit einem Aufruf für procmail zu füllen: | ||
<syntaxhighlight lang="bash"> | |||
xyz00@h01:~$ cat .forward | |||
"|/usr/bin/procmail" | |||
</syntaxhighlight> | |||
Als letzte Regel in der <tt>.procmailrc</tt> wird dann <tt>deliver</tt> aufgerufen, welches automatisch die aktiven Sieve-Regeln ausführt: | Als letzte Regel in der <tt>.procmailrc</tt> wird dann <tt>deliver</tt> aufgerufen, welches automatisch die aktiven Sieve-Regeln ausführt: | ||
<syntaxhighlight lang="bash"> | |||
# Letzte Procmail-Regel: Deliver aufrufen | |||
:0 w | |||
| /usr/lib/dovecot/deliver | |||
</syntaxhighlight> | |||
Soll procmail später nicht mehr benutzt werden, kann die .forward einfach gelöscht werden, oder deliver dort explizit angegeben werden: | Soll procmail später nicht mehr benutzt werden, kann die .forward einfach gelöscht werden, oder deliver dort explizit angegeben werden: | ||
<syntaxhighlight lang="bash"> | |||
xyz00@h01:~$ cat .forward | |||
"| /usr/lib/dovecot/deliver " | |||
</syntaxhighlight> | |||
=== Links === | |||
* Die Sieve-Filtersprache ist definiert in [http://tools.ietf.org/html/rfc5228 RFC5228] | |||
* In [http://tools.ietf.org/html/rfc5230 RFC5230] ist die Vacation Extension von der Sieve-Sprache genau beschrieben. | |||
* Weitere Sieve-relevante RFC's: [http://tools.ietf.org/html/rfc5229 RFC5229] Variables Extension; [http://tools.ietf.org/html/rfc5173 RFC5173] Body Extension; [http://tools.ietf.org/html/rfc5429 RFC5429] Reject and Extended Reject Extensions; [http://tools.ietf.org/html/rfc5231 RFC5231] Relational Extension; [http://tools.ietf.org/html/rfc5233 RFC5233] Subaddress Extension; [http://tools.ietf.org/html/rfc5235 RFC5235] Spamtest and Virustest Extensions; [http://tools.ietf.org/html/rfc3894 RFC3894] Copying Without Side Effects | |||
; | |||
[[Kategorie:E-Mail]] |
Aktuelle Version vom 12. Juni 2024, 11:09 Uhr
Managesieve
Managesieve [1] ist ein Dienst-Programm zum Einrichten und Verwalten von Mailfiltern, die in der Filtersprache sieve geschrieben sind. Sieve ist als Dovecot-Plugin [2] verfügbar.
Für Nutzer, die nur einfache Filterregeln benötigen, wird empfohlen diese Filter über das grafische Oberfläsche im Webmailer Roundcube anzulegen und zu verwalten. Die Vorgehensweise ist ausführlich unter Roundcube - Filter beschrieben.
Diese Seite gibt einige technische Informationen und Einführung für Nutzer, die eigene Skripte in sieve schreiben wollen.
Filtermöglichkeiten
Sieve erlaubt Filter zu schreiben u.a. für folgende Filteraktionen:
- Verschieben/Kopieren einer Nachricht in einen Ordner
- Erstellen von Abwesenheitsmeldungen
- Markieren von Nachrichten (z.B. Gelesen, Weitergeleitet)
- Weiterleiten/Kopie senden an andere Email-Adressen
- Ablehnen von Nachrichten
Eine ausführliche Beschreibung der Filteraktivitäten ist zu finden auf der Dovecot-Seite [3]
Hierbei sind keine Aufrufe von externen Programmen möglich. Dadurch können keine unerwünschten Seiteneffekte entstehen. Dies grenzt sieve beispielsweise von procmail ab.
Die Filterregeln lassen Checks zu z.B. von
- Test auf bestimmte Absender
- Vorhandensein von bestimmten Texten im Betreff oder dem Text der Nachricht
- Bestimmte Werte für andere Header der Nachricht, z.B. zur Identifizierung von Mailinglisten über List-Id.
Dabei können teilweise reguläre Ausdrücke benutzt werden oder Aggregatsfunktionen wie "Anzahl der Empfänger".
Einrichtung
Für die Einrichtung von deliver als Mailzustellungsprogramm ist keine weitere Konfiguration notwendig. Dies geschieht automatisch.
Hat ein Nutzer bisher procmail benutzt, kann die .forward gelöscht werden oder durch eine neue .forward ersetzt werden mit folgendem Inhalt:
xyz00@h01:~$ cat .forward
"| /usr/lib/dovecot/deliver "
Sieve-Filter
Ein einfaches Sieve-Skript sieht wie folgt aus:
require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
fileinto "Spam";
}
Dieses Skript prüft ob in der Nachricht der Header "X-Spam-Flag" existiert und den Wert "YES" enthält. In diesem Fall wird die Nachricht in den Ordner "Spam" abgespeichert.
Mehrere Filter werden hintereinander in eine Filterdatei gehängt. Die Filter können durch if-then-else-Konstrukte verbunden werden.
Weiter Beispiele sind zu finden z.B. unter [4] oder [5]
Speicherort
Die Sieve-Filter sollte im HOME-Verzeichnis des Users in der Datei ~/.dovecot.sieve abgespeichert werden.
Bei der Benutzung von Managesieve werden Filterdateien im Verzeichnis ~/Maildir/sieve/ gespeichert und per Symlink die aktive Filterdatei verlinkt.
xyz00@h01:~$ ls -al
drwxr-xr-x 5 xyz00-max xyz00 4096 Nov 16 07:28 .
drwxr-xr-x 28 xyz00-max xyz00 4096 Oct 22 23:06 ..
lrwxrwxrwx 1 xyz00-max xyz00 29 Nov 16 07:28 .dovecot.sieve -> Maildir/sieve/einfilter.sieve
Andere Filterdateien können im Flterverzeichnis gespeichert sein, aber nur die Datei, die wie oben gezeigt verlinkt ist, ist die aktive Filterdatei.
xyz00@h01:~$ ls -al Maildir/sieve
drwxr-xr-x 5 xyz00-max xyz00 4096 Nov 16 07:28 .
drwxr-xr-x 28 xyz00-max xyz00 4096 Oct 22 23:06 ..
-rw------- 1 xyz00-max xyz00 210 Nov 16 07:28 einfilter.sieve
-rw------- 1 xyz00-max xyz00 321 Nov 16 07:28 nocheinfilter.sieve
-rw------- 1 xyz00-max xyz00 99 Nov 16 07:28 weitererfilter.sieve
Managesieve
Managesieve ist ein Dienst, der es erlaubt Filterdateien aus der Ferne über ein definiertes Protokoll zu verändern sowei zu aktivieren/deaktivieren.
Der Dienst läuft jeweils auf dem Server auf dem der User seinen Account hat, also z.B. xyz00.hostsharing.net.
Folgende Einstellungen sind hierfür notwendig/empfohlen:
Beschreibung | Inhalt |
---|---|
Servername | xyz00.hostsharing.net (entsprechend dem Usernamen anpassen) |
Port | 4190 |
Authentifizierung | POP3/IMAP-Username/Passwort (z.B. xyz00-max) |
Sicherheit | TLS |
Beispielsweise kann hierfür das Thunderbird-Plugin Sieve benutzt werden.
Zusammenarbeit mit Procmail
Es ist möglich Procmail und Sieve (über deliver nacheinander zu benutzen. Dies kann z.B. interessant sein, wenn der Paketinhaber zentral für alle User über procmail Spamfilter mit spamassassin benutzen möchte und seine Nutzer dann anschließend über die grafische Óberfläche eigene (einfache) Filterregeln konfigurieren können.
Hierzu muß die .forward zunächst mit einem Aufruf für procmail zu füllen:
xyz00@h01:~$ cat .forward
"|/usr/bin/procmail"
Als letzte Regel in der .procmailrc wird dann deliver aufgerufen, welches automatisch die aktiven Sieve-Regeln ausführt:
# Letzte Procmail-Regel: Deliver aufrufen
:0 w
| /usr/lib/dovecot/deliver
Soll procmail später nicht mehr benutzt werden, kann die .forward einfach gelöscht werden, oder deliver dort explizit angegeben werden:
xyz00@h01:~$ cat .forward
"| /usr/lib/dovecot/deliver "
Links
- Die Sieve-Filtersprache ist definiert in RFC5228
- In RFC5230 ist die Vacation Extension von der Sieve-Sprache genau beschrieben.
- Weitere Sieve-relevante RFC's: RFC5229 Variables Extension; RFC5173 Body Extension; RFC5429 Reject and Extended Reject Extensions; RFC5231 Relational Extension; RFC5233 Subaddress Extension; RFC5235 Spamtest and Virustest Extensions; RFC3894 Copying Without Side Effects