E-Mail/Procmail
Mittels des Programms procmail können E-Mails direkt beim Eintreffen auf dem Server sortiert und gefiltert 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 procmail auszuführen, muss die .courier-Datei mindestens folgenden Inhalt haben:
|/usr/local/bin/preline -f /usr/bin/procmail
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/procmail
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 procmail in der Datei ~/.procmailrc.
Procmail gehört zu den traditionellen Unix-Werkzeugen und erfordert für die Konfiguration ein waches Auge. Schon ein einzelner Tippfehler kann zu unerwarteten Ergebnissen führen. Eine verständliche, deutschsprachige Kurzanleitung zu Procmail-Regeln finden Sie z.B. unter http://www.butschek.de/fachartikel/procmail-faq/.
Beispielkonfiguration
Wir verwenden an dieser Stelle eine Konfiguration, die in mehrere Dateien aufgeteilt ist. Dies macht es übersichtlicher und erlaubt auch eine große Zahl an Filterregeln zu verwalten.
Dazu benötigen wir zunächst eine Haupt-Datei (.procmailrc), die wie folgt aufgebaut ist:
# ----------------------------------- main files and dirs DEFAULT=${HOME}/Mail/ MAILDIR=${HOME}/Mail/ PMDIR=${HOME}/.procmail # ----------------------- Logging LOGFILE=${PMDIR}/procmail.log VERBOSE=yes LOGABSTRACT=all # ----------------------------------- filters INCLUDERC=${PMDIR}/lists.rc INCLUDERC=${PMDIR}/catch-all.rc
Hier wird "Mail/" als primäre Mailbox voreingestellt. Alle späteren Filterregeln können die Ziel-Mailbox relativ dazu angeben. Anschließend wird ".procmail/" als Verzeichnis mit weiteren Regeldateien eingestellt. Mittels INCLUDERC= werden diese in der Haupt-Konfigurationsdatei eingebunden. Speicherort und Dateiname können aber beliebig gewählt werden. Selbiges gilt für die Log-Datei.
Die Log-Datei kann weggelassen und die Filterregeln können in die .procmailrc geschrieben werden, beides ist jedoch nicht empfehlenswert.
Eigentliche Filterregeln
Um die eigentlichen Filterregeln festzulegen, erstellen wir die genannten Dateien (z.B. lists.rc) im procmail-Ordner. (hier: /home/<user>/.procmail/) Sie soll die Filterregeln aller Mailinglisten beinhalten.
# ---------------------------------------------- CCC Debatten Mailingliste :0 * ^(To:|Cc:).*(debate@lists.ccc.de|debate@ccc.de) .MLs.CCC-Debatten/ # ----------------------------------------------- LUG tuebingen :0 * ^(To:|Cc:).*lug-tuebingen@jura.uni-tuebingen.de .MLs.LnxGroupTue/ # ---------------------------------------------- tiles@home :0 * ^Subject:.*[\tilesathome\] .MLs.tiles@home/
Nach den selben Schemata lassen sich die Filter.rc-Dateien beliebig erweitern und neue *.rc-Dateien hinzufügen, INCLUDERC nicht vergessen!
Unter http://www.64-bit.de/dokumentationen/netzwerk/f/002/DE-Mailserver-HOWTO-5.html finden sie weitere Filtermöglichkeiten und eine umfangreiche Beschreibung der Syntax