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:
- Absenderadresse
- Empfänger
- Betreffzeile
- Zugehörigkeit zu einer Mailingliste
- Inhalt der E-Mail
- Spam (im Verbund mit Spamerkennungsprogrammen wie SpamAssassin)
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