E-mails filtern mit dovecot-sieve: Unterschied zwischen den Versionen

Aus
Keine Bearbeitungszusammenfassung
Zeile 15: Zeile 15:
   * Texteditor mit korrekten UNIX-Zeilenendzeichen (\n und nicht \r\n): z.B. vi oder nano
   * Texteditor mit korrekten UNIX-Zeilenendzeichen (\n und nicht \r\n): z.B. vi oder nano
Zusätzlich müssen suf der DS noch ein C-Compiler, die Development-Tools und die DB Library installiert werden, bevor mit der Arbeit an Dovecot-Sieve begonnen werden kann
Zusätzlich müssen suf der DS noch ein C-Compiler, die Development-Tools und die DB Library installiert werden, bevor mit der Arbeit an Dovecot-Sieve begonnen werden kann
<code style="display:block;margin:20px;">
<pre>
$ ipkg update<br />
$ ipkg update
$ ipkg install gcc<br />
$ ipkg install gcc
$ ipkg install optware-devel<br />
$ ipkg install optware-devel
$ ipkg install libdb<br />
$ ipkg install libdb
</code>
</pre>
Wenn das Paket ''gcc'' nicht existiert dann kann man versuchen den Compiler via ''cross-native'' einzuspielen (falls vorhanden). Sollte sich kein Compiler einspielen lassen, dann kann man dieses Sieb leider nicht verwenden!
Wenn das Paket '''gcc''' nicht existiert dann kann man versuchen den Compiler via '''cross-native''' einzuspielen (falls vorhanden). Sollte sich kein Compiler einspielen lassen, dann kann man dieses Sieb leider nicht verwenden!
Desweiteren werden die Quellcodes von Deovecot und auch Dovecot-Sieve benötigt. Dabei ist es wichtig die ''korrekten Versionen'' zu verwenden, welche [http://www.synology-forum.de/showpost.html?p=16842&postcount=4 Purzel in seinem Post] angegeben hat
Desweiteren werden die Quellcodes von Deovecot und auch Dovecot-Sieve benötigt. Dabei ist es wichtig die '''korrekten Versionen''' zu verwenden, welche [http://www.synology-forum.de/showpost.html?p=16842&postcount=4 Purzel in seinem Post] angegeben hat
<code style="display:block;margin:20px;">
<pre>
$ cd /volume1/public<br />
$ cd /volume1/public
$ wget http://www.dovecot.org/releases/1.0/dovecot-1.0.15.tar.gz<br />
$ wget http://www.dovecot.org/releases/1.0/dovecot-1.0.15.tar.gz
$ wget http://www.dovecot.org/releases/sieve/dovecot-sieve-1.0.3.tar.gz<br />
$ wget http://www.dovecot.org/releases/sieve/dovecot-sieve-1.0.3.tar.gz
$ gzip -d ./dovecot-1.0.15.tar.gz<br />
$ gzip -d ./dovecot-1.0.15.tar.gz
$ tar xfv ./dovecot-1.0.15.tar<br />
$ tar xfv ./dovecot-1.0.15.tar
$ gzip -d ./dovecot-sieve-1.0.3.tar.gz<br />
$ gzip -d ./dovecot-sieve-1.0.3.tar.gz
$ tar xfv ./dovecot-sieve-1.0.3.tar<br />
$ tar xfv ./dovecot-sieve-1.0.3.tar
</code>
</pre>


===== Installation =====
===== Installation =====
Bei der Installation ist folgendes wichtig: Sowohl dovecot als auch dovecot-sieve müssen erstellt werden.  
Bei der Installation ist folgendes wichtig: Sowohl dovecot als auch dovecot-sieve müssen erstellt werden.  


'''Dabei ist wichtig, dass nur die Befehle configure und make, ABER kein make install gemacht werden!!!'''
''''Dabei ist wichtig, dass nur die Befehle configure und make, ABER kein make install gemacht werden!!!''''


==== Dovecot kompilieren ====
==== Dovecot kompilieren ====
Dovecot-Sieve erwartet den kompletten Quellcode von Dovecot. Da Dovecot aber auf der DS nicht komplett vorhanden ist, muss man zuerst Dovecot aus den Quellen "erstellen". ('''wichtig''': kein make install machen)
Dovecot-Sieve erwartet den kompletten Quellcode von Dovecot. Da Dovecot aber auf der DS nicht komplett vorhanden ist, muss man zuerst Dovecot aus den Quellen "erstellen". (''''wichtig'''': kein make install machen)
<code style="display:block;margin:20px;">
<pre>
$ cd /volume1/public/dovecot-1.0.15<br />
$ cd /volume1/public/dovecot-1.0.15
$ ./configure && make
$ ./configure && make
</code>
</pre>
Obiger Code wird Dovecot so vorbereiten, dass dovecot-sieve damit arbeiten kann
Obiger Code wird Dovecot so vorbereiten, dass dovecot-sieve damit arbeiten kann
http://www.synology-forum.de/showthread.html?t=11137&page=4
http://www.synology-forum.de/showthread.html?t=11137&page=4
Zeile 49: Zeile 49:
==== Dovecot-Sieve installieren ====
==== Dovecot-Sieve installieren ====
Nachdem der Dovecot vorbereitet wurde, kann man an die eigentliche Installation von dem Sieb gehen. Auch hierbei darf kein **make install** gemacht werden
Nachdem der Dovecot vorbereitet wurde, kann man an die eigentliche Installation von dem Sieb gehen. Auch hierbei darf kein **make install** gemacht werden
<code style="display:block;margin:20px;">
<pre>
$ cd /volume1/public/dovecot-sieve-1.0.3<br />
$ cd /volume1/public/dovecot-sieve-1.0.3
$ ./configure --with-dovecot=../dovecot-1.0.15<br />
$ ./configure --with-dovecot=../dovecot-1.0.15
$ make
$ make
</code>
</pre>
Diese Code erstellt alle benötigten Module, welche dann an die korrekten Orte kopiert werden müssen.
Diese Code erstellt alle benötigten Module, welche dann an die korrekten Orte kopiert werden müssen.


=== Module kopieren ===
=== Module kopieren ===
In [http://www.synology-forum.de/showpost.html?p=16842&postcount=4 Purzels Post] kopiert er die Dateien in eine Dovecot Installation einer ipkg Version. Mit der Default Mailstation der Synology Firmware müssen andere Verzeichnisse gewählt werden, die ich im folgenden erwähnen möchte. Die ersten 4 Dateien liegen unter '''src/.libs/''' im Dovecot-Sieve-Verzeichnis. Das Ziel muss zuerst erstellt werden, damit es in die Struktur der Firmware passt
In [http://www.synology-forum.de/showpost.html?p=16842&postcount=4 Purzels Post] kopiert er die Dateien in eine Dovecot Installation einer ipkg Version. Mit der Default Mailstation der Synology Firmware müssen andere Verzeichnisse gewählt werden, die ich im folgenden erwähnen möchte. Die ersten 4 Dateien liegen unter ''''src/.libs/'''' im Dovecot-Sieve-Verzeichnis. Das Ziel muss zuerst erstellt werden, damit es in die Struktur der Firmware passt
<pre>
<pre>
$ mkdir -p /lib/dovecot/lda
$ mkdir -p /lib/dovecot/lda
Zeile 63: Zeile 63:
Damit kann man die Zielverzeichnisse dann mit den Modulen nutzen
Damit kann man die Zielverzeichnisse dann mit den Modulen nutzen
<pre>
<pre>
lib90_cmusieve_plugin.la  -> /lib/dovecot/<br />
lib90_cmusieve_plugin.la  -> /lib/dovecot/
lib90_cmusieve_plugin.lai -> /lib/dovecot/lda/<br />
lib90_cmusieve_plugin.lai -> /lib/dovecot/lda/
lib90_cmusieve_plugin.a  -> /lib/dovecot/lda/<br />
lib90_cmusieve_plugin.a  -> /lib/dovecot/lda/
lib90_cmusieve_plugin.la  -> /lib/dovecot/lda/<br />
lib90_cmusieve_plugin.la  -> /lib/dovecot/lda/
lib90_cmusieve_plugin.so  -> /lib/dovecot/lda/<br />
lib90_cmusieve_plugin.so  -> /lib/dovecot/lda/
</pre>
</pre>
Die folgenden zwei Dateien liegen in **src/libsieve/** des Dovecot-Sieve-Verzeichnisses. Deren Zielverzeichnisse existieren bereits.
Die folgenden zwei Dateien liegen in **src/libsieve/** des Dovecot-Sieve-Verzeichnisses. Deren Zielverzeichnisse existieren bereits.
<code style="display:block;margin:20px;">
<pre>
sievec                    -> /usr/syno/mailstation/libexec/dovecot/<br />
sievec                    -> /usr/syno/mailstation/libexec/dovecot/
sieved                    -> /usr/syno/mailstation/libexec/dovecot/
sieved                    -> /usr/syno/mailstation/libexec/dovecot/
</code>
</pre>


==== Local Delivery Agent kompilieren ====
==== Local Delivery Agent kompilieren ====
Dieser Punkt kommt bei Purzels Beschreibung nicht vor, da der LDA bei der ipkg-Version bereits vorhanden ist. Unter dovecot heisst das Teil '''deliver'''. Dieses ist leider bei der Mailstation nicht mit dabei. Der LDA hat die Aufgabe die Emails entgegenzunehmen und dann unter Berücksichtigung der Filter in die Mailboxen zu schreiben. Per default schreiben sowohl Postfix als auch Dovecot direkt in die Mailboxen der User.
Dieser Punkt kommt bei Purzels Beschreibung nicht vor, da der LDA bei der ipkg-Version bereits vorhanden ist. Unter dovecot heisst das Teil ''''deliver''''. Dieses ist leider bei der Mailstation nicht mit dabei. Der LDA hat die Aufgabe die Emails entgegenzunehmen und dann unter Berücksichtigung der Filter in die Mailboxen zu schreiben. Per default schreiben sowohl Postfix als auch Dovecot direkt in die Mailboxen der User.
<code style="display:block;margin:20px;">
<pre>
$ cd /volume1/public/dovecot-1.0.15/src/deliver<br />
$ cd /volume1/public/dovecot-1.0.15/src/deliver
$ make install deliver<br />
$ make install deliver
</code>
</pre>
Nun gibt es im Verzeichnis eine Datei Namens deliver, welche man noch an die korrekte Position kopieren muss
Nun gibt es im Verzeichnis eine Datei Namens deliver, welche man noch an die korrekte Position kopieren muss
<code style="display:block;margin:20px;">
<pre>
$ cp ./deliver /usr/syno/mailstation/libexec/dovecot
$ cp ./deliver /usr/syno/mailstation/libexec/dovecot
</code>
</pre>
Jetzt erwartet der ''deliver''-Befehl die Konfigurationsdatei von dovecot leider unter '''/usr/local/etc'''. Um das zu "beheben" kann man einen Softlink auf die Konfig-Datei anlegen
Jetzt erwartet der '''deliver'''-Befehl die Konfigurationsdatei von dovecot leider unter ''''/usr/local/etc''''. Um das zu "beheben" kann man einen Softlink auf die Konfig-Datei anlegen
<code style="display:block;margin:20px;">
<pre>
$ ln -s /usr/syno/mailstation/etc/dovecot.conf /usr/local/etc/dovecot.conf
$ ln -s /usr/syno/mailstation/etc/dovecot.conf /usr/local/etc/dovecot.conf
</code>
</pre>
===== Konfiguration =====
===== Konfiguration =====
==== Dovecot ====
==== Dovecot ====
Damit auch der Dovecot weiss, dass die Filter benutzt werden solle muss dessen Konfiguration angepasst werden. Öffnet dazu die Datei '''/usr/syno/mailstation/etc/dovecot.conf''' und sucht den String '''protocol lda'''
Damit auch der Dovecot weiss, dass die Filter benutzt werden solle muss dessen Konfiguration angepasst werden. Öffnet dazu die Datei ''''/usr/syno/mailstation/etc/dovecot.conf'''' und sucht den String ''''protocol lda''''
<pre>
<pre>
<code style="margin:20px;">
<code style="margin:20px;">
Zeile 128: Zeile 128:
   #auth_socket_path = /var/run/dovecot/auth-master
   #auth_socket_path = /var/run/dovecot/auth-master
}
}
</code>
</pre>
</pre>
</pre>
Achtet Euch darauf, dass ihr sowohl das Kommentarzeichen ('**#**') vor **protocol_lda** und dasjenige vor der schliessenden Klammer ('**}**') entfernt. Sonst crashed Dovecot beim booten. Dann die Datei speichern.
Achtet Euch darauf, dass ihr sowohl das Kommentarzeichen ('**#**') vor **protocol_lda** und dasjenige vor der schliessenden Klammer ('**}**') entfernt. Sonst crashed Dovecot beim booten. Dann die Datei speichern.
Zeile 139: Zeile 139:
path = /usr/syno/mailstation/libexec/dovecot/deliver
path = /usr/syno/mailstation/libexec/dovecot/deliver
arguments = ("-e", )
arguments = ("-e", )
</code>
</pre>
Wenn ihr virtuelle Emailbenutzer verwenden wollt, dann solltet ihr mal die **Diskussion unten auf der Seite** anschauen
Wenn ihr virtuelle Emailbenutzer verwenden wollt, dann solltet ihr mal die **Diskussion unten auf der Seite** anschauen


Zeile 146: Zeile 146:
<code>
<code>
mailbox_command = /usr/syno/mailstation/libexec/dovecot/deliver
mailbox_command = /usr/syno/mailstation/libexec/dovecot/deliver
</code>
</pre>
Datei speichern und Postfix neustarten
Datei speichern und Postfix neustarten
==== Sieb File einrichten ====
==== Sieb File einrichten ====
Zeile 161: Zeile 161:
   keep;
   keep;
}
}
</code>
</pre>
Wichtig dabei ist, dass die Regeln alle in **einem einzigen** if/elsif/else-Konstrukt untergebracht sind. Sonst passiert es schnell, dass die Emails doppelt vorkommen (einmal im Posteingang und einmal im Folder).  
Wichtig dabei ist, dass die Regeln alle in **einem einzigen** if/elsif/else-Konstrukt untergebracht sind. Sonst passiert es schnell, dass die Emails doppelt vorkommen (einmal im Posteingang und einmal im Folder).  
Es werden zudem Verkettungen von Bedingungen mithilfe von Operatoren unterstützt, um komplexere Regeln zu erstellen.
Es werden zudem Verkettungen von Bedingungen mithilfe von Operatoren unterstützt, um komplexere Regeln zu erstellen.
Zeile 169: Zeile 169:
   fileinto "INBOX.Computer &- Security.Foren.Synology";
   fileinto "INBOX.Computer &- Security.Foren.Synology";
   stop;
   stop;
</code>
</pre>
Und jetzt mit einem **und**-Operator
Und jetzt mit einem **und**-Operator
<code>
<code>
Zeile 175: Zeile 175:
   fileinto "INBOX.Computer &- Security.Foren.Synology";
   fileinto "INBOX.Computer &- Security.Foren.Synology";
   stop;
   stop;
</code>
</pre>
Die Syntax bei den "Zielen" ist genau gleich wie die Dateien/Verzeichnisse im Dateisystem (unter ~/.Maildir) heissen. Bei den obigen zwei Beispielen wäre das Ziel im Dateisystem also
Die Syntax bei den "Zielen" ist genau gleich wie die Dateien/Verzeichnisse im Dateisystem (unter ~/.Maildir) heissen. Bei den obigen zwei Beispielen wäre das Ziel im Dateisystem also
<code>
<code>
~/.Maildir/.INBOX.Computer &- Security.Foren.Synology
~/.Maildir/.INBOX.Computer &- Security.Foren.Synology
</code>
</pre>

Version vom 16. April 2010, 19:12 Uhr

Emails auf dem Server mit dovecot-sieve filtern

Basierend auf diesem Thread im Forum wollte ich mir auch mal die Email Filter auf dem Server ausprobieren. Danke @ Purzel :-D ;-)

Purzel hat seine Beschreibung aber für die alten Versionen der Firmware geschrieben. Dort gab es noch keine Mailstation und damit Postfix und Dovecot von Synology. Mit der Mailstation in der heutigen Firmware müssten einige Dinge anders gemacht werden

What's that?

Mit dem dovecot-sieve wird es möglich Filter (mit regulären Ausdrücken) auf Emails am Dovecot anzusetzen. Damit wird es möglich eingehende Emails auf dem IMAP Server in definierte Verzeichnisse zu verschieben oder gleich zu löschen (vorteilhaft im Zusammenspiel mit einem Spamassassin auf der DS). Grundsätzlich läuft das "Sieb" am IMAP Server. Da aber Dovecot ein sogenannter LDA (Local Delivery Agent) ist, kann man auch den Postfix (SMTP) Server dazu bringen seine Emails (direkt an die DS gesendet) nicht mehr direkt in die Mailboxen einzustellen, sondern die Emails zur Einstellung in die Mailboxen an Dovecot zu übergeben. Damit sind auch die Emails am SMTP Port im Filterprozess. Dazu muss aber auf der DS (zumindest für Dovecot von Synology) noch der lokale Zustellprozess (deliver) aus den Quellen von Dovecot kompiliert werden. Das ist einer der Unterschiede zur Beschreibung von Purzel, da sich seine Beschreibung auf den ipkg-Dovecot bezieht. Im Folgenden soll es um diese Unterschiede gehen. Also Purzels Post zusammen mit den hier gezeigten Unterschieden sollte Euch zum Ziel führen ;-)

Voraussetzungen

Als Grundvoraussetzung gilt das gleiche wie für ipkg Pakete, obwohl wir für Dovecot-Sieve kein Paket aus ipkg installieren müssen

 * ipkg für die jeweilige Prozessorarchitektur ist installiert
 * Zugriff auf die Shell Konsole via telnet oder ssh als root
 * Texteditor mit korrekten UNIX-Zeilenendzeichen (\n und nicht \r\n): z.B. vi oder nano

Zusätzlich müssen suf der DS noch ein C-Compiler, die Development-Tools und die DB Library installiert werden, bevor mit der Arbeit an Dovecot-Sieve begonnen werden kann

$ ipkg update
$ ipkg install gcc
$ ipkg install optware-devel
$ ipkg install libdb

Wenn das Paket gcc nicht existiert dann kann man versuchen den Compiler via cross-native einzuspielen (falls vorhanden). Sollte sich kein Compiler einspielen lassen, dann kann man dieses Sieb leider nicht verwenden! Desweiteren werden die Quellcodes von Deovecot und auch Dovecot-Sieve benötigt. Dabei ist es wichtig die korrekten Versionen zu verwenden, welche Purzel in seinem Post angegeben hat

$ cd /volume1/public
$ wget http://www.dovecot.org/releases/1.0/dovecot-1.0.15.tar.gz
$ wget http://www.dovecot.org/releases/sieve/dovecot-sieve-1.0.3.tar.gz
$ gzip -d ./dovecot-1.0.15.tar.gz
$ tar xfv ./dovecot-1.0.15.tar
$ gzip -d ./dovecot-sieve-1.0.3.tar.gz
$ tar xfv ./dovecot-sieve-1.0.3.tar
Installation

Bei der Installation ist folgendes wichtig: Sowohl dovecot als auch dovecot-sieve müssen erstellt werden.

'Dabei ist wichtig, dass nur die Befehle configure und make, ABER kein make install gemacht werden!!!'

Dovecot kompilieren

Dovecot-Sieve erwartet den kompletten Quellcode von Dovecot. Da Dovecot aber auf der DS nicht komplett vorhanden ist, muss man zuerst Dovecot aus den Quellen "erstellen". ('wichtig': kein make install machen)

$ cd /volume1/public/dovecot-1.0.15
$ ./configure && make

Obiger Code wird Dovecot so vorbereiten, dass dovecot-sieve damit arbeiten kann http://www.synology-forum.de/showthread.html?t=11137&page=4

Dovecot-Sieve installieren

Nachdem der Dovecot vorbereitet wurde, kann man an die eigentliche Installation von dem Sieb gehen. Auch hierbei darf kein **make install** gemacht werden

$ cd /volume1/public/dovecot-sieve-1.0.3
$ ./configure --with-dovecot=../dovecot-1.0.15
$ make

Diese Code erstellt alle benötigten Module, welche dann an die korrekten Orte kopiert werden müssen.

Module kopieren

In Purzels Post kopiert er die Dateien in eine Dovecot Installation einer ipkg Version. Mit der Default Mailstation der Synology Firmware müssen andere Verzeichnisse gewählt werden, die ich im folgenden erwähnen möchte. Die ersten 4 Dateien liegen unter 'src/.libs/' im Dovecot-Sieve-Verzeichnis. Das Ziel muss zuerst erstellt werden, damit es in die Struktur der Firmware passt

$ mkdir -p /lib/dovecot/lda

Damit kann man die Zielverzeichnisse dann mit den Modulen nutzen

lib90_cmusieve_plugin.la  -> /lib/dovecot/
lib90_cmusieve_plugin.lai -> /lib/dovecot/lda/
lib90_cmusieve_plugin.a   -> /lib/dovecot/lda/
lib90_cmusieve_plugin.la  -> /lib/dovecot/lda/
lib90_cmusieve_plugin.so  -> /lib/dovecot/lda/

Die folgenden zwei Dateien liegen in **src/libsieve/** des Dovecot-Sieve-Verzeichnisses. Deren Zielverzeichnisse existieren bereits.

sievec                    -> /usr/syno/mailstation/libexec/dovecot/
sieved                    -> /usr/syno/mailstation/libexec/dovecot/

Local Delivery Agent kompilieren

Dieser Punkt kommt bei Purzels Beschreibung nicht vor, da der LDA bei der ipkg-Version bereits vorhanden ist. Unter dovecot heisst das Teil 'deliver'. Dieses ist leider bei der Mailstation nicht mit dabei. Der LDA hat die Aufgabe die Emails entgegenzunehmen und dann unter Berücksichtigung der Filter in die Mailboxen zu schreiben. Per default schreiben sowohl Postfix als auch Dovecot direkt in die Mailboxen der User.

$ cd /volume1/public/dovecot-1.0.15/src/deliver
$ make install deliver

Nun gibt es im Verzeichnis eine Datei Namens deliver, welche man noch an die korrekte Position kopieren muss

$ cp ./deliver /usr/syno/mailstation/libexec/dovecot

Jetzt erwartet der deliver-Befehl die Konfigurationsdatei von dovecot leider unter '/usr/local/etc'. Um das zu "beheben" kann man einen Softlink auf die Konfig-Datei anlegen

$ ln -s /usr/syno/mailstation/etc/dovecot.conf /usr/local/etc/dovecot.conf
Konfiguration

Dovecot

Damit auch der Dovecot weiss, dass die Filter benutzt werden solle muss dessen Konfiguration angepasst werden. Öffnet dazu die Datei '/usr/syno/mailstation/etc/dovecot.conf' und sucht den String 'protocol lda'

<code style="margin:20px;">
protocol lda {
  # Address to use when sending rejection mails.
  postmaster_address = ich@du.tld

  # Hostname to use in various parts of sent mails, eg. in Message-Id.
  # Default is the system's real hostname.
  hostname = ich.du.tld

  # Support for dynamically loadable plugins. mail_plugins is a space separated
  # list of plugins to load.
   mail_plugins = cmusieve
   mail_plugin_dir = /usr/lib/dovecot/lda

  # If user is over quota, return with temporary failure instead of
  # bouncing the mail.
  #quota_full_tempfail = no

  # Format to use for logging mail deliveries. You can use variables:
  #  %$ - Delivery status message (e.g. "saved to INBOX")
  #  %m - Message-ID
  #  %s - Subject
  #  %f - From address
  #deliver_log_format = msgid=%m: %$

  # Binary to use for sending mails.
  #sendmail_path = /usr/lib/sendmail

  # Human readable error message for rejection mails. Use can use variables:
  #  %n = CRLF, %r = reason, %s = subject, %t = recipient
  #rejection_reason = Your message to <%t> was automatically rejected:%n%r

  # UNIX socket path to master authentication server to find users.
  #auth_socket_path = /var/run/dovecot/auth-master
}

Achtet Euch darauf, dass ihr sowohl das Kommentarzeichen ('**#**') vor **protocol_lda** und dasjenige vor der schliessenden Klammer ('**}**') entfernt. Sonst crashed Dovecot beim booten. Dann die Datei speichern.

Filter beim Einsammeln der Emails anwenden

Damit überhaupt der LDA involviert wird, wenn die Emails von externen Account abgerufen werden, müssen die dem Konto entsprechenden rc-Files angepasst werden. Im Normalzustand werden die Emails auch von Dovecot direkt in die Mailbox geschrieben. So kann man Dovecot anweisen (im entsprechenden rc-File) den LDA zu verwenden [destination] type = MDA_external path = /usr/syno/mailstation/libexec/dovecot/deliver arguments = ("-e", )

Wenn ihr virtuelle Emailbenutzer verwenden wollt, dann solltet ihr mal die **Diskussion unten auf der Seite** anschauen

Postfix

Damit der Postfix Server auch weiss, dass er die Emails nicht direkt in die Mailboxen stellen soll, sondern einem weiteren Agent übergeben muss, reicht eine einfache Anweisung in der **main.cf** des Postfix Servers. Öffnet diese Datei und sucht nach **mailbox_command =** und setzt den Wert auf mailbox_command = /usr/syno/mailstation/libexec/dovecot/deliver

Datei speichern und Postfix neustarten

Sieb File einrichten

Damit überhaupt Aktionen ausgeführt werden können wenn Emails an den LDA übergeben werden, braucht es im Homeverzeichnis von jedem User, der gefiltert werden soll, eine Datei Namens **.dovecot.sieve** Diese Datei legt die regulären Ausdrücke und die Aktionen fest. Im folgenden Beispiel werden von Spamassassin markierte Emails direkt in den Papierkorb verschoben und die Emails vom Synology Forum in einen speziellen Ordner geschrieben. Das else keep; sorgt dafür, dass die Email im Posteingang bleibt wenn keine Regel zutrifft require "fileinto"; if header :comparator "i;ascii-casemap" :contains "subject" "*****SPAM*****" {

 fileinto "Trash";
 stop;

} elsif header :comparator "i;ascii-casemap" :contains "from" "info@synology-forum.de" {

  fileinto "INBOX.Computer &- Security.Foren.Synology";
  stop;

} else {

  keep;

}

Wichtig dabei ist, dass die Regeln alle in **einem einzigen** if/elsif/else-Konstrukt untergebracht sind. Sonst passiert es schnell, dass die Emails doppelt vorkommen (einmal im Posteingang und einmal im Folder). Es werden zudem Verkettungen von Bedingungen mithilfe von Operatoren unterstützt, um komplexere Regeln zu erstellen. Zuerstmal am Besipiel des **oder**-Operators if anyof(header :comparator "i;ascii-casemap" :contains "from" "info@synology-forum.de",header :comparator "i;ascii-casemap" :contains "subject" "Your Support Request") {

  fileinto "INBOX.Computer &- Security.Foren.Synology";
  stop;

Und jetzt mit einem **und**-Operator if allof(header :comparator "i;ascii-casemap" :contains "from" "info@synology-forum.de",header :comparator "i;ascii-casemap" :contains "subject" "Your Support Request") {

  fileinto "INBOX.Computer &- Security.Foren.Synology";
  stop;

Die Syntax bei den "Zielen" ist genau gleich wie die Dateien/Verzeichnisse im Dateisystem (unter ~/.Maildir) heissen. Bei den obigen zwei Beispielen wäre das Ziel im Dateisystem also ~/.Maildir/.INBOX.Computer &- Security.Foren.Synology