Skip to main content

Procmail

Procmail ist ein E-Mail-Filter, welcher unter Linux und weiteren unixoiden Betriebssystemen eingesetzt wird. Es ist in der Lage, gemäß voreingestellten Filterregeln für den jeweiligen Benutzeraccount eingehende E-Mails weiterzuleiten, zu löschen, automatisch zu beantworten (Autoresponder-Funktion) oder einfach nur in der Inbox zuzustellen. Des Weiteren kann man zugestellte Mails in Ordner einsortieren. Außerdem kann Procmail mit einem Spamfilter wie z. B. SpamAssassin Junkmails erkennen und diese entsprechend behandeln (also löschen oder in einen Spamordner verschieben – je nach Konfiguration).

Procmail zählt zu den Mail Delivery Agents (MDA). Diese werden wiederum von einem Mail Transfer Agent (MTA) aufgerufen – dies kann unter Unix oder Linux z. B. Sendmail oder Postfix sein.

Rezepte für die E-Mail-Verarbeitung

Die Filterregeln, nach denen Procmail den E-Mail-Eingang bearbeitet, heißen Recipes (engl. Rezept). Ein Recipe legt eine oder mehrere Bedingungen fest; sobald diese erfüllt sind, wird eine Aktion ausgeführt. Ein solches Recipe kann allgemeinverständlich z. B. wie folgt lauten: “Ist der Absender abc@xyz.com, dann lösche dieses E-Mail.” Neben dem Mailabsender kann man E-Mails nach vielen weiteren Kriterien filtern. Dies sind u. a.:

  • Betreffzeile (oder Teile davon)
  • E-Mail-Empfänger
  • E-Mail-Inhalt (oder bestimmte Abschnitte oder Zeilen)
  • Zugehörigkeit zu festgelegten Mailinglisten

.procmailrc – die Datei, die alles regelt

Sämtliche Filterregeln eines E-Mail-Useraccounts werden in der Datei .procmailrc gespeichert. Diese befindet sich im Homeverzeichnis des Benutzers. Aus Sicherheitsgründen darf die Datei .procmailrc keine Schreibrechte für andere User oder Groups enthalten, da die Datei ansonsten dazu missbraucht werden könnte, E-Mails von fremden Usern abzufangen und umzuleiten. Deshalb wird die Datei .procmailrc vom Programm abgelehnt, sollte sie falsche Berechtigungen enthalten.

Beispiele für verschiedene Anwendungsfälle

Ein einfaches Beispiel für ein Recipe in der .procmailrc kann wie folgt aussehen:


:0
* ^From.*@gmail.com
! abc@hijk.org

Hier werden alle E-Mails an abc@hijk.org weitergeleitet, wenn die Absenderadresse “@gmail.com” enthält. Mit “:0” wird eine Filterregel eingeleitet. Das Ausrufezeichen steht für die Anweisung “E-Mail weiterleiten an…”. Hier gilt es darauf zu achten, dass als Empfänger nicht versehentlich die eigene Mailadresse eingesetzt wird, da diese sonst in einer Endlosschleife landet, sich somit selbst vervielfältigt und der Mail-Eingang des Users binnen kürzester Zeit überfüllt würde.

Ein weiteres Beispiel:


:0
* ^TO.*redaktion@verlag.com
{
:0c
! redakteur1@verlag.com
:0c
! redakteur2@verlag.com
:0
! chefredakteur@verlag.com
}

Dies ist ein typischer Fall, wie mit Procmail ein E-Mail-Verteiler eingerichtet wird: Alle E-Mails, die für redaktion@verlag.com eingehen, werden hier an drei Redakteure weitergeleitet. In diesem Fall werden drei Aktionen in geschweiften Klammern zusammengefasst – ähnlich wie in vielen Programmiersprachen. :0c bedeutet hier, dass eine Kopie der Nachricht erzeugt wird, wobei die Regel auf die Kopie der E-Mail angewendet wird. Das Original-E-Mail wird an chefredakteur@verlag.com zugestellt.

Dies ist nur ein winziger Auszug aus der Funktionsvielfalt des mächtigen Tools Procmail. Eine ausführliche Dokumentation zu Procmail findet man u. a. in den Manpages von Ubuntu.

Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG