Procmail
| 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:
- 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 E-Mail-Weiterleitungen, Autoresponder oder Urlaubsschaltungen implementieren.
Um E-Mails in bereits bestehende Mailboxen zu filtern, liefert Procmail das Hilfsprogramm formail mit.
Beispiel
[Bearbeiten | Quelltext bearbeiten]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
[Bearbeiten | Quelltext bearbeiten]- 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
[Bearbeiten | Quelltext bearbeiten]- Procmail QuickStart
- Procmail Mini FAQ
- Deutsche Procmail FAQ
- GitHub - BuGlessRB/procmail: The mail sorting program. (englisch). â derzeitiger Quellcode
- Procmail Homepage. Archiviert vom am 13. Oktober 2015 (englisch). â Archivierte Procmail Webseite
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- â 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.â
- â Philip Gunther: please remove the procmail port. ports@ (Mailing list) OpenBSD, 18. November 2014, abgerufen am 17. November 2022 (englisch).
- 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 ...â
- â CVEdetails: Procmail Vulnerabilities. CVEdetails.com, 3. Februar 2018, abgerufen am 17. November 2022 (englisch).
- â procmail considered harmful - anarcat. Abgerufen am 17. November 2022.