Mailfilter
Procmail ist ein mächtiger E-Mail-Filter, der für viele komplexe Aufgaben verwendet werden kann. So sind z.B. variable Weiterleitungen oder Spamfilter möglich.
Zur Nutzung von Procmail wird zunächst im Verzeichnis des Nutzers die Datei .forward mit folgendem Inhalt angelegt:
"|/usr/bin/procmail"
Damit werden die Mails nun über das Programm Procmail ausgeliefert, und die Art der Auslieferung wird über die Datei ~/.procmailrc konfiguriert.
Beispiel
Diese .procmailrc-Datei setzt die Verzeichnisse Spam und Hostsharing in Ihrem Mailverzeichnis voraus:
# Kein Logging als Default COMSAT=no LOGABSTRACT=no VERBOSE=no LOGFILE=procmail.log # Systemweiten Spamassassin-Daemon für alle Mails aufrufen... :0fw | /usr/bin/spamc -U /var/run/spamd # ...und Spam in eigenem Folder aussortieren :0 * ^X-Spam-Flag: YES Maildir/.Spam/ # Mailinglisten von Hostsharing kommen in eine eigene Mailbox. :0 * ^TO_(support|technik|website)@hostsharing\.net Maildir/.Hostsharing/
Alle nicht ausgefilterten Mails landen in der normalen Mailbox.
:0 leitet eine Filterregel ein und fw in der ersten Regel sorgt dafür, dass Procmail wartet, bis das Programm fertig ist.
Abwesenheitsbenachrichtigung (vacation)
Zunächst erstellen Sie in Ihrem Home-Verzeichnis eine Datei vacation.msg, deren Text als Nachricht verschickt werden soll.
In die .procmailrc werden anschließend folgende Zeilen eingefügt:
SHELL=/bin/sh FORMAIL=/usr/bin/formail SENDMAIL=/usr/sbin/sendmail :0 Whc: vacation.lock # Nur E-Mails, die an meine Adresse adressiert sind * ^TO_myself@example\.com # Daemons (Mailinglisten) ausschließen * !^FROM_DAEMON # Loop vermeiden: eigene E-Mail ausschließen * !^X-Loop: myself@example.com # Adresse des Senders im Cache speichern | formail -rD 8192 vacation.cache # e: letztes recipe trifft nicht zu (Adresse noch nicht im Cache vorhanden) :0 ehc | ($FORMAIL -rA "Precedence: junk" -A "X-Loop: myself@example.com"; /bin/cat vacation.msg ) | $SENDMAIL -oi -t -f myself@example.com
Eine E-Mail mit dem Inhalt der Datei vacation.msg und dem Absender myself@example.com wird an den Sender geschickt. Allerdings geschieht dies nur, wenn die Adresse noch nicht in der vacation.cache-Datei vorhanden war. Damit wird vermieden, dass ein Absender immer wieder dieselbe Abwesenheitsnachricht erhält.
Mail-Größe limitieren
In folgendem Besipiel wird die maximale Größe von E-Mails auf 16 MB beschränkt um die Mailbox-Größe (Quota) nicht zu schnell anwachsen zu lassen:
:0 * > 16777216 | (formail -brt ; \ echo "I am sorry, I don't accept mails larger than 16MB." ;\ echo ""; \ ) | $SENDMAIL -oi -t
Zum Weiterlesen
- pm-tips
- A collection of procmail recipes, instructions, howtos.
- Timo's procmail tips and recipes
- procmail tips and recipes
- Spamcheck
- Ein Script, mit dem man über ausgefilterte E-Mails unterrichtet wird.