E-Mail/Procmail
Beschreibung
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 Konfiguration von qmail vertraut machen. E-Mail/Konfiguration/.qmail-Dateien Minimaler inhalt der .qmail-xxxxxx datei ist:
|/usr/local/bin/preline -f procmail
optional könnte sie 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 procmail
wobei die Reihenfolge auch die Reihenfolge der bearbeitung wiederspiegelt: Sollte eine Mail als Spam erkannt werden, wird die Mail nicht mehr zu procmail durchgeleitet sondern in den Spam-Ordner verschoben
Haupt-Konfiguration
Die eigentliche Konfiguration findet in der Datei /home/<user>/.procmailrc statt.
Aussehen könnte sie, recht selbsterklärend, wie folgt:
# ----------------------------------- 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
Aufgrund einer besseren Übersicht, sind die Filter-Regeln im Ordner /home/<user>/.procmail/ als *.rc ausgelagert, die mit einem INCLUDERC= einfach implementiert werden können. Jener Ort und Dateiname kann 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.
Filter
Zuerst sollten sie eine catch-all.rc erstellen und mit INCLUDERC an letzter Stelle einfügen, die jenen Inhalt beherbergt:
:0: new
Somit wird jene Mail, die auf keinen der vorherigen Filter zutrifft, in den Haupt-Mail-Ordner unter /new abgelegt, erscheint also in ihrem E-Mail-Client unsortiert und als "ungelesen".
erstellen wir eine Datei mit den Namen lists.rc im procmail-Ordner. (hier: /home/<user>/.procmail/) Sie soll die Filterregeln aller Mailinglisten beinhalten. hier exemplarisch ein Beispiel, dass die Syntax verdeutlichen soll: (zum Schutz meiner Privatsphäre teilweise zensiert)
# ---------------------------------------------- CCC Debatten Mailingliste :0 * ^(To:|Cc:).*(debate@lists.ccc.de|debate@ccc.de) .MLs.CCC-Debatten/new
# ----------------------------------------------- LUG tuebingen :0 * ^(To:|Cc:).*lug-tuebingen@jura.uni-tuebingen.de .MLs.LnxGroupTue/new
# ---------------------------------------------- tiles@home :0 * ^Subject:.*[\tilesathome\] .MLs.tiles@home/new
# ----------------------------------------------- <<censored>> :0 * ^Subject:.*[\<<censored>>-tuebingen] .MLs.<<censored>>/new
Nach den selben Schemata lassen sich die Filter.rc-Dateien beliebig erweitern und neue *.rc-Dateien hinzufügen, INCLUDERC nicht vergessen!
http://www.64-bit.de/dokumentationen/netzwerk/f/002/DE-Mailserver-HOWTO-5.html Hier finden sie weitere Filtermöglichkekeiten und eine genauere Beschreibung der Syntax