Procmail

Procmail ist ein Mail Delivery Agent (MDA), der zur serverseitigen Filterung von E-Mail-Nachrichten verwendet wird.

Procmail
Basisdaten
Entwickler Procmail Foundation
Erscheinungsjahr 7. Dezember 1990
Aktuelle Version 3.22
(10. September 2001)
Betriebssystem Linux, Unix
Programmiersprache C
Kategorie Mailfilter
Lizenz GPL und AL
deutschsprachig nein
www.procmail.org

Für gewöhnlich wird Procmail von einem Mail Transfer Agent (MTA) wie zum Beispiel Sendmail oder Postfix aufgerufen. Durch Procmail kann dann eine Vorsortierung eingehender E-Mail-Nachrichten in Ordner realisiert werden. Dabei können E-Mails anhand diverser Eigenschaften gefiltert werden, wie zum Beispiel:

Zu diesem Zweck bedient sich Procmail unter anderem regulärer Ausdrücke. Procmail verfügt des Weiteren über die Fähigkeit, externe Programme aufzurufen oder aber automatisiert auf E-Mails zu antworten; so lassen sich beliebte Features wie Weiterleitungen, Autoresponder oder Urlaubsschaltungen implementieren.

Um E-Mails in bereits bestehende Mailboxen zu filtern, liefert Procmail das Hilfsprogramm formail mit.

Beispiel

Das folgende Beispiel einer Procmail-Steuerdatei (meist .procmailrc) scannt eingehende Mails mit SpamAssassin und filtert sie anschließend.

SHELL=/bin/bash
MAILDIR=$HOME/mail
DEFAULT=$MAILDIR/inbox
LOCKFILE=$HOME/.lockmail

:0fw
| /usr/bin/spamassassin

:0H
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*
/dev/null

:0H:
* ^X-Spam-Status: Yes
./Spam

# Anything that has not been delivered by now will go to $DEFAULT
# using LOCKFILE=$DEFAULT$LOCKEXT

:0 leitet eine Filterregel ein. Das angefügte fw der ersten Regel sorgt dafür, dass Procmail wartet, bis das Programm fertig ist. Das angefügte H der beiden folgenden Regeln sorgt dafür, dass nur die Header der E-Mail durchsucht werden. Ein abschließender Doppelpunkt weist Procmail an, File-Locking zu verwenden. Das ist immer dann notwendig, wenn nicht sichergestellt ist, dass die Regel mehrfach parallel ausgeführt werden kann. Zum Beispiel wenn eine Mail in eine bestimmte mbox-Datei einsortiert werden soll, bei der durch gleichzeitige Zugriffe ein Datenverlust entstehen würde.

Zur Erklärung: Zuerst wird die E-Mail mittels einer Pipe an das Programm spamassassin gesendet und gewartet, bis das Programm fertig ist. Die nun gescannte Mail durchläuft die nächsten Filterregeln. SpamAssassin fügt gesichteten E-Mails den Header X-Spam-Status hinzu, der je nach eingestellter Schwelle Yes (für erkannten Spam) oder No (für nicht als Spam erkannte Nachrichten) lautet. Des Weiteren fügt SpamAssassin einen Header hinzu, der aus *-Zeichen besteht. Die Anzahl der Zeichen steht dabei für den abgerundeten Score (d. h. Wahrscheinlichkeit, dass die Nachricht Spam ist) der E-Mail. Der Score, nach dem eine Nachricht als Spam bewertet wird, liegt standardmäßig bei 5.

Das Beispiel filtert nach der Anzahl der Zeichen. Findet Procmail zehn oder mehr *-Zeichen, so wird die E-Mail im Nulldevice abgespeichert und somit verworfen. Wird eine Nachricht generell als Spam erkannt, so wird die Nachricht im Verzeichnis Spam abgespeichert. Alle anderen E-Mails werden in der normalen Inbox abgeliefert.

Literatur

  • The Procmail Companion, Martin McCarthy, Addison-Wesley, S. 256, November 2001, ISBN 0201737906
  • Procmail, Chris Lindsey, S. 325, April 2001, ISBN 1565925408
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.