Procmail

Was ist Procmail?

Procmail ist ein regelbasierter Mail Delivery Agent für Unix- und Linux-Systeme. Das Programm verarbeitet eingehende E-Mails anhand sogenannter Rezepte, prüft Kopfzeilen oder Nachrichtentexte und kann Nachrichten zustellen, sortieren, weiterleiten, protokollieren oder an andere Programme übergeben. Gesteuert wird Procmail typischerweise über die Konfigurationsdatei .procmailrc.

Wie funktioniert Procmail?

Procmail übernimmt eine E-Mail normalerweise nach dem Empfang durch den Mailserver und verarbeitet sie vor der endgültigen Ablage im Postfach. Als Mail Delivery Agent, auf Deutsch Zustellprogramm, liest Procmail die Nachricht über die Standardeingabe ein. Anschließend prüft Procmail die hinterlegten Regeln in der Datei .procmailrc von oben nach unten.

Eine Procmail-Regel wird als Rezept bezeichnet. Jedes Rezept kann aus Steuerzeichen, optionalen Bedingungen und einer Aktion bestehen. Die Bedingungen arbeiten meist mit regulären Ausdrücken und können beispielsweise den Absender, den Betreff, den Empfänger oder andere Header-Felder untersuchen. Eine passende Aktion legt die Nachricht in einem Ordner ab, leitet sie weiter oder übergibt sie an ein anderes Programm.

Ein einfaches Rezept beginnt mit :0. Darunter folgen Bedingungen mit einem Sternchen und anschließend die auszuführende Aktion. Procmail wertet die Rezepte in ihrer festgelegten Reihenfolge aus. Eine zu allgemein formulierte Regel kann deshalb alle späteren Regeln wirkungslos machen.

Aufbau einer Procmail-Regel

Eine typische Procmail-Konfiguration definiert zuerst Verzeichnisse und Protokolldateien. Danach folgen die einzelnen Rezepte. Das folgende vereinfachte Beispiel sortiert Nachrichten mit dem Wort Rechnung im Betreff in eine eigene Mailbox:

MAILDIR=$HOME/Mail
DEFAULT=$MAILDIR/inbox
LOGFILE=$HOME/procmail.log

:0:
* ^Subject:.*Rechnung
$MAILDIR/rechnungen

Der Ausdruck ^Subject: beschränkt die Prüfung auf die Betreffzeile. Der Doppelpunkt hinter :0: fordert eine Sperrdatei an, damit zwei gleichzeitig eintreffende Nachrichten nicht parallel in dieselbe Mailbox geschrieben werden. Diese Sperre ist besonders bei mbox-Dateien relevant, weil mehrere Schreibvorgänge die Mailbox beschädigen können.

Procmail unterstützt verschiedene Aktionen:

  • Ein Dateipfad stellt die Nachricht in eine bestimmte Mailbox oder einen Mailordner zu.
  • Ein Ausrufezeichen vor einer Adresse leitet die Nachricht an einen anderen Empfänger weiter.
  • Ein senkrechter Strich übergibt die Nachricht an ein externes Programm oder Skript.
  • Geschweifte Klammern fassen mehrere Regeln und Aktionen zu einem Block zusammen.

Procmail sicher konfigurieren

Der häufigste Denkfehler besteht darin, Procmail-Regeln wie harmlose Postfachfilter zu behandeln. Procmail kann externe Befehle mit den Rechten des jeweiligen Benutzers ausführen. Unsichere Variablen, unkontrollierte Nachrichtendaten oder falsch gesetzte Dateirechte können deshalb über eine fehlerhafte Sortierung hinausgehen und unerwünschte Befehle oder Zugriffe ermöglichen.

Eine sichere Konfiguration verwendet feste Programmpfade, restriktive Dateirechte und kontrollierte Variablen. Die Datei .procmailrc sollte nur für ihren Besitzer beschreibbar sein. Externe Befehle sollten keine ungeprüften Header-Werte als Argumente erhalten. Vor dem produktiven Einsatz empfiehlt sich außerdem eine Protokolldatei, mit der du erkennst, welches Rezept eine Nachricht verarbeitet hat.

  • Teste neue Rezepte zunächst mit Kopien unkritischer Nachrichten.
  • Ordne spezifische Regeln vor allgemeinen Auffangregeln an.
  • Verwende Sperrdateien, wenn mehrere Prozesse dieselbe mbox-Datei beschreiben.
  • Prüfe Weiterleitungen auf mögliche Schleifen zwischen zwei Adressen.
  • Sichere die bestehende Konfiguration vor jeder größeren Änderung.

Unterschied zu MTA, MUA und Sieve

Der Unterschied zwischen Procmail und einem Mail Transfer Agent liegt im Verarbeitungsschritt. Ein Mail Transfer Agent nimmt Nachrichten über SMTP an und transportiert sie zwischen Servern. Procmail verarbeitet eine bereits angenommene Nachricht bei oder unmittelbar vor der lokalen Zustellung. Procmail ersetzt daher keinen vollständigen Mailserver.

Ein Mail User Agent ist das E-Mail-Programm des Benutzers, beispielsweise ein Desktop-Client oder eine Webmail-Oberfläche. Ein solcher Client zeigt Nachrichten an und bietet häufig eigene Filterregeln. Procmail arbeitet dagegen serverseitig oder lokal im Zustellprozess, sodass die Sortierung bereits erfolgt sein kann, bevor der Benutzer sein Postfach öffnet.

Sieve und Procmail erfüllen teilweise ähnliche Aufgaben, unterscheiden sich aber technisch. Sieve ist eine speziell für E-Mail-Filter entwickelte Sprache mit begrenzten Befehlen. Procmail kann Nachrichten zusätzlich an beliebige Programme und Shell-Befehle übergeben. Diese Flexibilität erweitert die Einsatzmöglichkeiten, erhöht jedoch den Prüfbedarf bei Sicherheit und Fehlerbehandlung.

Relevanz für SEO und Marketing

Procmail beeinflusst Rankings, Crawling und GEO, also Generative Engine Optimization, nicht direkt. Ein indirekter Bezug entsteht, wenn Unternehmen automatisierte Berichte, Serverwarnungen, Formularnachrichten oder Benachrichtigungen aus Marketing-Systemen per E-Mail erhalten. Eine fehlerhafte Regel kann solche Nachrichten in einen falschen Ordner verschieben oder verwerfen und dadurch Reaktionszeiten verlängern.

Technische Zustellregeln sollten deshalb in die Dokumentation geschäftskritischer Prozesse aufgenommen werden. Bei einem SEO-Audit oder der Prüfung technischer Systeme ist relevant, ob Warnungen tatsächlich die zuständige Person erreichen. Ein nachvollziehbares SEO-Reporting benötigt ebenfalls verlässliche Zustellwege, wenn Berichte oder Alerts per E-Mail versendet werden.

Messbar ist Procmail über seine Protokolldatei: Prüfe die Anzahl verarbeiteter Nachrichten, die ausgelösten Rezepte, Fehlermeldungen und die tatsächlichen Zielordner. Ein Log-Eintrag beweist allerdings nur, dass Procmail eine Aktion ausgeführt hat. Ob die Nachricht anschließend im E-Mail-Client sichtbar ist, muss zusätzlich im Zielpostfach kontrolliert werden.

Häufige Fragen zu Procmail

Wird Procmail heute noch verwendet?

Procmail ist weiterhin auf älteren Unix- und Linux-Systemen sowie in gewachsenen Mailumgebungen zu finden. Bei neuen Installationen werden häufig andere serverseitige Filterlösungen gewählt, weil sich Procmail-Konfigurationen und eingebundene Shell-Befehle sorgfältig absichern und warten lassen müssen.

Wo liegt die Procmail-Konfiguration?

Benutzerspezifische Regeln stehen typischerweise in der Datei .procmailrc im persönlichen Verzeichnis. Systemweite Pfade hängen von der jeweiligen Installation und der Einbindung in den Mailserver ab.

Kann Procmail Spam filtern?

Procmail kann Nachrichten anhand von Absendern, Headern, Betreffzeilen und Textmustern sortieren. Für eine belastbare Spam-Erkennung wird Procmail häufig nur zur Weiterverarbeitung der Bewertung eines spezialisierten Filters eingesetzt.

Warum verschwinden E-Mails nach einer neuen Regel?

Procmail wertet Rezepte der Reihe nach aus. Eine zu breite Bedingung, ein falscher Zielpfad oder eine abschließende Zustellung kann verhindern, dass spätere Regeln greifen. Das Protokoll und eine Testnachricht zeigen, welches Rezept tatsächlich ausgelöst wurde.

Kann Procmail Anhänge verarbeiten?

Procmail kann vollständige Nachrichten an externe Programme übergeben, die MIME-Inhalte und Anhänge auswerten. Procmail selbst ist jedoch kein komfortabler Parser für komplexe Anhangsformate. Eingebundene Programme müssen sicher mit Dateinamen, Nachrichtendaten und unerwarteten Inhalten umgehen.

Wenn geschäftskritische E-Mails, technische Alerts oder Marketing-Berichte unzuverlässig ankommen, sollte die gesamte Zustellkette geprüft werden. Eine unverbindliche technische und strategische Erstberatung hilft dabei, relevante Systeme und Prozesse strukturiert einzuordnen.

Kostenloser Potenzialcheck


Sie haben noch Fragen?

Kontaktieren Sie uns

SEO Agentur kostenlose SEO Potentialanalyse


Weitere Inhalte