E-Mail/Procmail

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen

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
Reihenfolge beachten

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>/.procmailr< 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
[[Bild:]]
Auslagerung der Filter-Regeln

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 werden, 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
[[Bild:]]

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