Zum Inhalt springen

Procmail

aus Wikipedia, der freien EnzyklopÀdie
Procmail
Basisdaten
Entwickler Procmail Foundation
Erscheinungsjahr 7. Dezember 1990
Aktuelle Version 3.24
(2. MÀrz 2022)
Betriebssystem Linux, Unix
Programmier­sprache C
Kategorie Mailfilter
Lizenz GPL und AL
deutschsprachig nein
www.procmail.org

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

UrsprĂŒnglich entwickelt von Stephen R. van den Berg[1], dann weiterentwickelt von Philip Guenther um die Jahrtausendwende, wurde Anfang der 2000er Jahre die Weiterentwicklung eingestellt. 2014 rief der vormalige Entwickler dazu auf, die Paketierung einzustellen.[2] Seit etwa 2015 funktioniert auch die Webseite des Projektes nicht mehr.[3] Über die Zeit wurden auch eine SicherheitslĂŒcke entdeckt[4], die wohl aber mittlerweile behoben seien sollen, nachdem 2020 der ursprĂŒngliche Entwickler die Arbeit wieder aufnahm und nochmals zwei neue Versionen mit Fehlerbehebungen veröffentlichte. Ob grundsĂ€tzlichen Probleme des Quellcodes behoben werden, ist unklar.[5][3]

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 E-Mail-Weiterleitungen, Autoresponder oder Urlaubsschaltungen implementieren.

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

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.

Wikibooks: Liste verschiedener Procmail-Rezepte – Lern- und Lehrmaterialien
  • Procmail QuickStart
  • Procmail Mini FAQ
  • Deutsche Procmail FAQ
  • GitHub - BuGlessRB/procmail: The mail sorting program. (englisch). – derzeitiger Quellcode
  • Procmail Homepage. Archiviert vom Original am 13. Oktober 2015; (englisch). – Archivierte Procmail Webseite

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ README. 2. MĂ€rz 2022, abgerufen am 17. November 2022 (englisch): „Copyright (c) 1990-2022, S.R. van den Berg, The Netherlands. Copyright (c) 1997-2005, Philip Guenther, The United States of America.“
  2. ↑ Philip Gunther: please remove the procmail port. ports@ (Mailing list) OpenBSD, 18. November 2014, abgerufen am 17. November 2022 (englisch).
  3. 1 2 Stephen R. van den Berg: #1006633: procmail is unmaintained upstream. 2. MĂ€rz 2022, abgerufen am 17. November 2022 (englisch): „As of May 2020, the dormant state of procmail upstream maintenance has been changed back to active. As Santiago Vila can attest to, I have taken up active maintenance of procmail again since the past two years ...“
  4. ↑ CVEdetails: Procmail Vulnerabilities. CVEdetails.com, 3. Februar 2018, abgerufen am 17. November 2022 (englisch).
  5. ↑ procmail considered harmful - anarcat. Abgerufen am 17. November 2022.