Zum Inhalt springen

Procmail

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 15. Dezember 2025 um 20:15 Uhr durch imported>SchlurcherBot (Bot: http → https).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Procmail

[[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)|150px]]
Basisdaten

Maintainer Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Entwickler Procmail Foundation
Erscheinungsjahr 7. Dezember 1990
Aktuelle Version 3.24
(2. März 2022)
Aktuelle Vorabversion Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value))
Betriebssystem Linux, Unix
Programmier­sprache C
Kategorie Mailfilter
Lizenz GPL und AL
deutschsprachig ja
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<ref name="README" />, 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.<ref name="openbsd-ports-marc" /> Seit etwa 2015 funktioniert auch die Webseite des Projektes nicht mehr.<ref name="debbug" /> Über die Zeit wurden auch eine Sicherheitslücke entdeckt<ref name="cvedetails-procmail" />, 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.<ref>procmail considered harmful - anarcat. Abgerufen am 17. November 2022.</ref><ref name="debbug" />

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.

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 0-201-73790-6
  • Procmail, Chris Lindsey, S. 325, April 2001, ISBN 1-56592-540-8

Weblinks

Einzelnachweise

<references> <ref name="openbsd-ports-marc"> Vorlage:Cite book/NameVorlage:Cite book/Name: [Internetquelle: archiv-url ungültig please remove the procmail port.] ports@ (Mailing list) OpenBSD, , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 17. November 2022 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung </ref> <ref name="cvedetails-procmail"> Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig CVEdetails: Procmail Vulnerabilities.] CVEdetails.com, , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 17. November 2022 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung </ref> <ref name="README"> Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig README.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 17. November 2022 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)): „Copyright (c) 1990-2022, S.R. van den Berg, The Netherlands. Copyright (c) 1997-2005, Philip Guenther, The United States of America.“Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung </ref> <ref name="debbug"> Vorlage:Cite book/NameVorlage:Cite book/Name: [Internetquelle: archiv-url ungültig #1006633: procmail is unmaintained upstream.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 17. November 2022 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)): „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 ...“Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung </ref> </references>