Bewertung 3


Die Kandidaten sollten in der Lage sein, auf Clients Mailmanagement-Software zu implementieren, um eingehende Mails zu filtern, zu sortieren und zu kontrollieren. Dieses Lernziel beinhaltet die Verwendung von Software wie procmail sowohl server- wie auch client-seitig.

Schlüsseldateien, Begriffe und Hilfsmittel beinhalten:

  • procmail
  • .procmailrc

Procmail ist ein Programm, das für die lokale Versendung von E-Mail auf dem System zuständig ist. Jeder User kann damit eigene Regeln erstellen, die dann vom MTA abgearbeitet werden.

In den meisten Fällen (sendmail, exim,…) wird procmail automatisch aufgerufen, um lokale Mail zu bearbeiten. Sollte das nicht der Fall sein, so kann in der .forward Datei im Homeverzeichnis jedes Users die folgende Zeile eingefügt werden um procmail zu starten.

  "|/usr/bin/procmail"

Die Konfigurationsdatei ~/.procmailrc

In der Datei $HOME/.procmailrc werden die Grundeinstellungen eingetragen und Regeln formuliert, die dann die weitere Verarbeitung der Mails steuern. Um mehr Übersichtlichkeit zu erhalten, können die Regeln auch in andere Dateien ausgelagert werden, die dann mittels der Anweisung

  INCLUDERC=Dateiname

eingebunden werden. Auf diese Weise können sehr schnell bestimmte Regeln deaktiviert werden, indem die entsprechende Zeile einfach auskommentiert wird. (Kommentare wie üblich durch ein #-Zeichen)

Wichtige Einstellungen in der Konfigurationsdatei sind LOGFILE=Datei Angabe der Datei, in die procmail sein Logbuch schreibt. Verbose=yes Nur für die Fehlersuche. Ausgiebiges Logbuch MAILDIR=Verzeichnis Das Mailverzeichnis des Users (gewöhnlich $HOME/Mail).

Bei all diesen Einstellungen handelt es sich um einfache Umgebungsvariablen, auf die entsprechend mit einem führenden Dollar-Zeichen wieder zugegriffen werden kann. Es ist also auch möglich beliebige andere Variablen zu setzen und zu nutzen.

Dem folgen entweder einzelne Regeln oder die Angabe von einzubindenden Regeldateien oder beides.

Aufbau von Regeln

Jede Regel folgt strikt einem klar definierten Format:

  :0 [Flags] [ : [Lockfile] ]
  *<Eine oder mehrere Bedingungen (eine pro Zeile) >
  <Genau eine Aktion >

Jede Bedingungszeile beginnt mit einem Sternchen, alles, was danach kommt wird als regulärer Ausdruck interpretiert. Trifft ein solcher Ausdruck zu, so wird die Aktion ausgeführt. Mehrere Bedingungen sind durch ein logisches UND verbunden. Ist keine Bedingung angegeben, so wird die Regel immer angewandt.

Die wichtigsten optionalen Flags der ersten Zeile haben folgende Bedeutung: H Der Header der Mail wird durch den regulären Ausdruck untersucht (voreingestellt). B Der Body der Mail wird durch den regulären Ausdruck untersucht. D Unterscheidung zwischen Groß- und Kleinschreibung wird aktiviert. Ohne diesen Flag ist sie ausgeschalten. C Die Mail wird an die angegebene Aktion weitergeleitet, die Abarbeitung der RC-Datei wird aber nicht beendet. So ist es möglich, eine Mail von mehrere Regeln bearbeiten zu lassen.

Es gibt noch viele weitere Flags, die der Handbuchseite von procmailrc zu entnehmen sind.

Die Bedingungen beginnen mit einem Sternchen. Danach folgt ein regulärer Ausdrück, der ein paar mailspezifischen Erweiterungen enthalten darf: ^TO_ Dieser Ausdruck trifft auf alle Zeilen zu, die mit einem To, Cc, Bcc oder Resent-To beginnen. Damit ist es also möglich, auf alle denkbaren Empfänger-Angaben zu reagieren. ^FROM_DAEMON Dieser Ausdruck trifft auf alle Zeilen zu, die offensichtlich von Mailer-Daemonen oder Mailinglisten kommen. Dazu zählen gefundene Worte wie Mailing-List, To: Multiple recipients of, X-Envelope-From und viele mehr. ^FROM_MAILER Ähnlich wie FROM_DAEMON, nur ohne Mailinglisten.

Die Aktionen bestehen hauptsächlich aus Datei- oder Verzeichnisnamen (Verzeichnisnamen enden mit einem Slash, Dateinamen nicht) und meinen, dass die Mail, auf die die Bedingung zutrifft, in diese Maildatei bzw. das Mailverzeichnis angehängt werden soll. Die Dateinamen beziehen sich auf das in der Variable MAILDIR angegebene Verzeichnis (typischerweise $HOME/Mail).

Beginnt die Aktion jedoch mit einem Pipe-Symbol (|) dann wird die Mail an das dem Pipe-Symbol folgende Programm weitergeleitet.

Beginnt die Aktion mit einem Ausrufungszeichen, gefolgt von einer oder mehreren E-Mail Adressen, so wird die Mail an diese Adressen geforwarded.

Links zum Thema Procmail