E-Mail/Maildrop
Mittels des Programms maildrop können E-Mails direkt beim Eintreffen auf dem Server sortiert und gefiltert werden.
Diese Anleitung erfordert die Verwendung einer .courier-Datei. Dazu muss entweder die verwendete Domain auf manuelle Konfiguration eingestellt werden oder Sie leiten die zu filternden E-Mails auf eine Benutzer-E-Mail-Adresse um, die grundsätzlich mit .courier-Dateien verwaltet werden.
Vorbereitung
Zuerst sollten sie sich mit der grundsätzlichen Konfiguration unseres Mail-Servers vertraut machen. Eine Hilfestellung dazu bietet die Seite über .courier-Dateien.
Um maildrop auszuführen, muss die .courier-Datei mindestens folgenden Inhalt haben:
|/usr/local/bin/preline -f /usr/bin/maildrop
mit zusätzlichem Aufruf eines Spam- und Virenfiltern könnte die Datei auch so aussehen:
|/usr/local/bin/keks-user-qmail-ifvirus put ./Mail/.Virus/ |/usr/local/bin/keks-user-qmail-ifspam put ./Mail/.Spam/ |/usr/local/bin/preline -f /usr/bin/maildrop
Achten Sie darauf, dass die Reihenfolge innerhalb der Datei auch die Reihenfolge der Bearbeitung wiederspiegelt: Sollte eine Mail als Spam erkannt werden, wird die Mail nicht mehr zu procmail durchgeleitet sondern z.B. in den Spam-Ordner verschoben
Konfiguration
Die eigentliche Konfiguration sucht maildrop in der Datei ~/.mailfilter.
Alternativ kann dem Aufruf ein Dateiname angehängt werden.
Maildrop beachtet nur Konfigurationsdateien die ausschließlich für den betreffenden Benutzer lesbar sind. Mit chmod 600 .mailfilter können die Rechte passend gesetzt werden.
Beispielkonfiguration
Die Datei .mailfilter' sollte zunächst eine Standard-Mailbox setzen, in die Nachrichten einsortiert werden, die nicht extra behandelt werden. Zudem sollen Aktionen protokolliert werden. Dazu beginnt die Datei etwa so:
DEFAULT="$HOME/Mail/" MAILBOX="$HOME/Mail/" logfile "$HOME/.mailfilter.log"
Hier wird "Mail/" als primäre Mailbox voreingestellt und in die Variable ${MAILBOX} gespeichert. Alle späteren Filterregeln können die Ziel-Mailbox relativ zu ${MAILBOX} angeben.
Die Log-Datei kann natürlich später nach ausgiebigen Tests weggelassen werden.
Eigentliche Filterregeln
Folgende Beispiel-Filterregeln sollen die Verwendung verdeutlichen. Es besteht jeweils aus einer if-Abfrage, die auf einen regulären Ausdruck prüft. Der reguläre Ausdruck steht zwischen Schrägstrichen /.../ und es kann optional :h nachgestellt werden um die Prüfung nur im Mail-Header durchzuführen. Mit dem Befehl "to" wird dann das Zustellziel angegeben.
# ---------------------------------------------- CCC Debatten Mailingliste if ( /^(To:|Cc:).*(debate@lists.ccc.de|debate@ccc.de)/:h ) { to ${MAILBOX}.MLs.CCC-Debatten/ } # ----------------------------------------------- LUG tuebingen if ( /^(To:|Cc:).*lug-tuebingen@jura.uni-tuebingen.de/:h ) { to ${MAILBOX}.MLs.LnxGroupTue/ } # ---------------------------------------------- tiles@home if ( /^Subject:.*[\tilesathome\]/:h ) { to ${MAILBOX}.MLs.tiles@home/ } # ---------------------------------------------- Diese Mails kommentarlos löschen if ( /^From: .*evil@badboy.net/:h ) { exit }
Es sind natürlich noch viele weitere Möglichkeiten gegeben. Eine Übersicht bietet die offizielle Dokumentation von Maildrop. Eine Anleitung zur Konversion von Procmail-Regel in das Maildrop-Format gibt es unter http://www.wonkity.com/~wblock/docs/html/maildrop.html