Home / LinuxUser / 2002 / 04 / Mails bearbeiten mit procmail

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Der Meister der Rezepte

Mails bearbeiten mit procmail

01.04.2002 Auf den ersten Blick erschrecken viele Anwender vor der scheinbar kryptischen Syntax der Filterregeln, mit denen Procmail Mails bearbeitet und sortiert. Auf den zweiten Blick hingegen zeigt sich das Programm als wahrer Alleskönner.

Mit einer einprägsamen aber vielfältigen Konfigurationssprache, die leicht zu handhaben, und mit der fast alles möglich ist, erweist sich Procmail als mächtiges Werkzeug: Vom simplen Verteilen der Mails auf einzelne Ordner bis zur Weiterleitung der Nachrichten via SMS ist alles möglich.

Schreck lass nach: Das Rezept

Doch wie funktioniert dieses Programm eigentlich? In der Datei /etc/procmailrc definieren Sie die systemweiten Filterregeln für Procmail. Wenn Sie einen Einzelplatz-Rechner benutzen, erstellen Sie jedoch am sinnvollsten in Ihrem Home-Verzeichnis die Datei ~/.procmailrc, denn dort findet Procmail die lokalen Regeln, die es auf die eingetroffene Post anwendet. Diese Regeln heißen in den umfangreichen Manualseiten von Procmail Rezepte (Recipes).

Ein Rezept sagt Procmail beispielsweise, nach welchen Zeichenketten es in den Mails schauen, und welche Aktion ausgeführt werden soll, wenn es dieses Muster erkannt hat. Vielleicht mag das für den Anfang recht abstrakt klingen, und deshalb sehen wir uns so ein Rezept einmal aus der Nähe an:

:0
* ^From:.*@tuxnordpol\.de
tux

Als erstes Zeichen des obigen Rezeptes finden Sie den Doppelpunkt, an dem Procmail erkennt, dass nun ein neues Rezept beginnt. Auf den Doppelpunkt folgt immer eine Null und optional weitere Zeichen, mit denen wir uns im Abschnitt Flags noch beschäftigen werden.

Ein weiterer Doppelpunkt nach der Null bedeutet, dass für das Rezept ein Lockfile benutzt werden soll. Da dies jedoch nur selten im Alltagsgebrauch nötig ist, wird das Thema Lockfile an dieser Stelle nicht angeschnitten. Bei Bedarf erhalten Sie eine ausführliche Hilfestellung in den Manualseiten von Procmail, die Sie in der Konsole einsehen können mit den Befehlen man procmail, man procmailex, man procmailsc und man procmailrc.

Die zweite Zeile wird mit dem Sternchen * eingeleitet und Bedingung (Condition) genannt. Dieses Sternchen hat eine völlig andere Lesart für Procmail als das Zeichen * in .*@tuxnordpol\.de. Dazu finden Sie die Details im weiteren Textverlauf.

An unserem Beispiel-Rezept sehen Sie, dass lediglich eine Bedingung definiert wurde: ^From:.*@tuxnordpol\.de. Sie können jedoch auch mehrere oder gar keine Bedingung festlegen, wenn Sie möchten. Und was bedingt diese Bedingung? Die Antwort lautet: Die Aktion, die Sie hier in der dritten und letzten Zeile sehen.

Die Aktions-Zeile legt fest, was mit der Nachricht, die die Bedingung erfüllt, passieren soll. In unserem Falle wird jede Nachricht, die im From-Header den Absender @tuxnordpol.de trägt, in den Mail-Ordner tux sortiert: sowohl tux@tuxnordpol.de als auch igloo@tuxnordpol.de oder hering@tuxnordpol.de finden dort Eingang.

Die Rezepte der Datei ~/.procmailrc werden von oben nach unten auf ihre Bedingung hin geprüft. Trifft die Bedingung zu, wird die dafür definierte Aktion ausgeführt. Trifft die Bedingung nicht zu, wird die Mail an das nächste Rezept gereicht oder landet im Default-Ordner. Hinweise, wie Sie den Default-Ordner und andere Umgebungsvariablen für Procmail festlegen, finden Sie im Abschnitt Variablen.

Reguläre Ausdrücke

Um es Procmail zu ermöglichen, die Nachrichten genau nach Ihren Wünschen zu ordnen, müssen Sie sich regulärer Ausdrücke bedienen. Wenn Sie sich die Bedingungs-Zeile des Beispiels noch einmal ansehen, dann stoßen Sie auf das Caret ^, den Punkt . und den Asterisk * . Diese Zeichen stehen als Stellvertreter für Buchstaben- und Zahlengruppen oder halten die Lage einer Zeichengruppe in einer Zeile fest. Auch das klingt schwieriger als es ist, wie Sie in Tabelle 1 sehen können.

Tabelle 1: Reguläre Ausdrücke

^ Die folgende Zeichenkette steht am Zeilenanfang
$ Die vorhergehende Zeichenkette steht am Zeilenende
. Ein beliebiges Zeichen
* Das vorhergehende Zeichen mehrmals, einmal oder gar nicht
+ Das vorhergehende Zeichen mindestens einmal oder mehrmals
? Das vorhergehende Zeichen entweder einmal oder gar nicht
[a-k] Jedes Zeichen von a bis k
[^a-k] Jedes Zeichen außer a bis k
de|com Entweder de oder com
(abcd)* Endweder mehrmals, einmal oder gar nicht die Zeichenkette abcd
! Invertiert die Bedingung
\ Das folgende Zeichen wird maskiert. Dass heißt der Backslash hebt die besondere Bedeutung eines Zeichens auf. Der Punkt steht als regulärer Ausdruck für ein beliebiges Zeichen. Ein \. gibt dem regulären Ausdruck wieder seinen ursprünglichen Sinn als Punkt zurück.

Natürlich können Sie die regulären Ausdrücke miteinander verbinden. So bedeutet die Kombination .* ein beliebiges Zeichen mehrmals, einmal oder gar nicht. Wenn Sie sich näher über die regulären Ausdrücke informieren möchten, bietet sich neben den Manualseiten von Procmail ebenfalls man egrep auf der Konsole an.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

1220 Hits
Wertung: 55 Punkte (2 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...