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

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(243 Punkte bei 15 Stimmen)
Re: War doch klar...
(179 Punkte bei 5 Stimmen)
Re: Skype für 64-Bit-Prozessor u. Suse 12.1
(161 Punkte bei 4 Stimmen)
Kubuntu verliert Finanzierung
(130 Punkte bei 4 Stimmen)
Offen fürs Geschäft
(80 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

1072 Hits
Wertung: 55 Punkte (2 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 03/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

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

Suse 12.1 Bootvorgang bleibt seit Update stehen
Wimpy *, 12.02.2012 09:22, 0 Antworten
Seit Update auf Kernel 3.1.9-1.4-desktop i686 bleibt der Bootvorgang stehen. Es erscheint der gr...
N24 Stick (Huawei E173) und Ubuntu 11.04
Patrick Obenauer, 11.02.2012 11:54, 1 Antworten
Hallo zusammen! Ich benutze einen alten Laptop, der mit Ubuntu 11.04 flott und problemlos läuft....
Wie kann man beim Einsatz von Compiz die Fenster-Dekoration einstellen?
GoaSkin , 10.02.2012 20:12, 0 Antworten
Hallo, ich nutze Linux Mint mit dem Gnome-Derivat Mate. Da die Distribution Compiz nicht autom...
rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...
Skype für 64-Bit-Prozessor u. Suse 12.1
Klaus Sigerist, 05.02.2012 11:39, 3 Antworten
Hallo Gemeinde! Ich bin nur ein einfacher Nutzer und habe Probleme mit der Installation von Skyp...