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
Achten Sie darauf, dass die Reihenfolge innerhalb der Datei auch die Reihenfolge der Bearbeitung wiederspiegelt: Sollen E-Mails an mehrere Ziele zugestellt werden, kann der Filter die Zustellung der darunter liegenden Zeilen verhindern.
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