PATH=$HOME/bin:/usr/bin:/bin:/usr/local/bin:.
MAILDIR=$HOME/Mail
DEFAULT=/var/spool/mail/username
LOGFILE=$MAILDIR/procmail.log
Der zweite Doppelpunkt sorgt dafür, daß die gerade bearbeitete Datei für andere Prozesse gesperrt wird. Weiterhin gibt es noch folgende Optionen::0 oder :0:
H die Bedingung gilt nur für die Kopfzeile (Header)
B die Bedingung gilt für den Rumpf (Body)
D Groß- und Kleinbuchstaben werden unterschieden
A diese Regel wird nur dann angewandt, wenn die vorhergehende angewendet wurde
a Wie A, außer, daß die vorhergehende Regel erfolgreich ausgeführt worden sein muß
E Diese Regel wird ausgeführt, wenn die vorangegangene Regel nicht ausgeführt wurde
e Diese Regel wird ausgeführt, wenn die vorangegangene Regel zwar ausgeführt, aber
mit einem Fehler abgebrochen wurde
b Der Rumpf der Nachricht wird an den Befehl weitergegeben
f Der Befehl wird als Filter interpretiert
c Generiert eine Kopie von der Nachricht
w Wartet auf den Befehl finish, um dann aus dem Programm herauszugehen
W Wie die vorhergehende Option, gibt aber im Falle eines Fehlers keine Nachrichten aus
i Ignoriert mögliche Tippfehler
h Die Kopfzeile wird an den Befehl weitergegeben
r Schreibt die Nachricht so wie sie ist. Prüft nicht, ob sie mit einer Leerzeile endet
Beispiele:^ der Anfang einer Zeile
$ das Ende einer Zeile
. ein einzelnes, beliebiges Zeichen
* ein Zeichen einmal, mehrmals oder gar nicht
+ ein Zeichen mindestens einmal oder mehrmals
? ein Zeichen entweder mehrmals oder garnicht
[] eine Menge von Zeichen, die in den eckigen Klammern angegeben werden
[^] diese Zeichen dürfen nicht vorkommen
a|b entweder 'a' oder 'b'
\ das folgende Zeichen soll als das Zeichen, wofür es steht benutzt werden
! Invertiert die Bedingung
Anmerkung: Die Zeichfolge '.*' bedeutet, daß irgendein Zeichen ('.'), beliebig oft ('*') vorkommen kann.* ^From sucht 'From' am Zeilenanfang
* linux$ sucht 'linux' am Zeilenende
* ^MP3$ 'MP3' ist das einzige Wort in dieser Zeile
* [3-7] eine Ziffer zwischen '3' und '7'
* [^6] eine beliebige Ziffer, außer '6'
* A+ einmal oder mehrmals das Zeichen 'A'
* A? entweder kein oder mehrere 'A'
* ^From[ :].*@werbung\.com jeder Absender der Domäne 'werbung.com'.
Es können mehrere Bedingungen nacheinander angegeben werden. In diesem Fall ist eine Regel dann erfüllt, wenn alle Bedingungen zutreffen (UND-Verknüpfung). Nach den Bedingungen folgt eine auszuführende Aktion. Diese wird ausgeführt wenn die Regel zutrifft:
Beispiele einer Regel:!db@mail.de die Nachricht wird an die angegebene Mailadresse weitergeleitet
|mail startet ein Programm oder Script namens 'Mail'
linux die Mail wird im Mailordner 'linux' gespeichert
/dev/null die Mail wird gelöscht
:0 H
* ^Sender: linux@64-bit.de
.linux
:0 HB
* ^From.*werbung.com
* .*Kaufen
/dev/null
# Konfigdatei fuer procmail
# Mailserver-HOWTO
#
# Dirk Bender
#
# Evtl. müssen die Pfade angepasst werden
# Der Header:
# Suchpfade für Programme die von procmail benötigt werden
PATH=$HOME/bin:/usr/bin:/bin:/usr/local/bin:.
# In diesem Verzeichnis werden sortierte Mails abgelegt
MAILDIR=$HOME/Mail
# Mails auf die keine Regel zutrifft liegen unter:
DEFAULT=/var/spool/mail/dirk
# In dieser Datei werden Status- und Fehlermeldungen protokolliert
LOGFILE=$MAILDIR/procmail.log
# Wie ausführlich sollen die Aktionen protokolliert werden
# Wenn die Konfiguration stimmt, sollte es auf 'off' stehen
VERBOSE=on
# Ruft ein Programm o. Script bei jedem Beenden von procmail auf
#TRAP=<Programmname>
# Nun folgen die Regeln:
# Mails vom Sender 'werbung.com' werden aussortiert:
:0
* ^From[ :].*@werbung.com
.trash # '/dev/null' wuerde die Mail sofort Loeschen
# Mails vom Sender 'linux-news.de' werden in
# '/home/dirk/Mail/news' verschoben:
:0
* ^From[ :].*@linux-news.de
news
# Mails die die Zeichenfolge linux enthalten werden in
# '/home/dirk/Mail/linux' verschoben:
:0 B
* ^.*linux
linux
# Mails von Martina werden in den Ordner 'martina' weitergeleitet
# und es wird eine Nachricht per Winpopup an einen Rechner gesendet:
:0 H
* ^Sender: martina@64-bit.de
{
:0 c
| echo Eine Mail von Martina | smbclient -M rechnername
:0
martina
}
pop3 stream tcp nowait root /usr/sbin/tcpd ipop3dDer inetd selbst muß dann natürlich für die Runlevel 3 und 5 ebenfalls aktiviert sein.