Spam-Mail mit procmail ausfiltern
Das Programm procmail verwaltet eingehende E-Mails. Anhand bestimmter "Regeln" wird festgelegt, welcher Behandlung sie unterzogen werden. Meist werden E-Mails weitergeleitet, in bestimmte Mailboxen einsortiert oder einfach verworfen. Es sind noch weitaus komplexere Anwendungen möglich, die hier aber nicht beschrieben werden. Wir verweisen dazu auf die Dokumentation.
Bei uns am MI wird procmail automatisch aktiviert, wenn eine neue E-Mail eintrifft. Jetzt muß ihm nur noch zu verstehen gegeben werden, wie es zu verfahren hat. Diese Informationen bezieht das Programm aus einer Textdatei, .procmailrc, im Homeverzeichnis (das ist das Laufwerk E: unter Windows oder ~ bzw. $HOME unter Unix). In dieser Datei werden die Filterungsregeln in folgender Weise definiert: Jede Regel beginnt mit einer Zeile, in der nur :0 steht. Jetzt werden die Kriterien festgelegt, denen eine E-Mail entsprechen muß, um diese Regel Anwendung finden zu lassen. Das geschieht durch ein oder mehrere Zeilen, die mit * beginnen, gefolgt von einem regulären Ausdruck (=regular expression, oder kürzer: regexp. Mit regulären Ausdrücken werden Sprachkonstrukte beschrieben. Siehe dazu den Abschnitt Basic Regular Expressions auf der regexp-Manualseite). Nach den gegebenen regexps wird im Headerteil der Nachricht gesucht. Wenn alle eine Entsprechung finden, wird die E-Mail an das in der letzten Zeile der Regel angegebene Ziel ausgeliefert. Dieses Ziel kann ein Programm, eine E-Mailadresse, eine Mailbox oder /dev/null (das Datennirvana) sein. Für unsere Zwecke als Spam-Filter benötigen wir nur /dev/null, für den Rest sei auf die procmail- und procmailrc-Manualseiten verwiesen.
Jede E-Mail, die keiner der Regeln entspricht, wird in die Standard-Mailbox (am MI: ~/.mail) geliefert, landet also wie gewohnt in der Inbox.
Ein funktionstüchtiges Beispiel:
.procmailrc:
# Spam am X-Spam-Level erkennen
:0
* ^x-spam-level:.*xxxxxxx
/dev/null
:0
* ^subject:.*\<(money|dollars?|euros?|prize|offers?)\>
/dev/null
Diese .procmailrc bewirkt, daß E-Mails, deren 'Spam-Level' (Siehe Spamassassin am RRZK) höher ist als 7, oder deren Betreff ("subject") die Worte "money", "dollar(s)", "euro(s)", "prize" oder "offer(s)" enthält, sofort aussortiert und vernichtet werden. Mit der Zeit kann man noch weitere Begriffe hinzufügen, die man als Spammer-Jargon erkannt hat. (Vorsicht: Daten, die nach /dev/null wandern, sind futsch! Man sei also nicht zu rigoros beim Aussortieren.)
Wenn man sich dieses — nicht unrealistische — Beispiel anschaut, wird einem auffallen, daß man diese oder ähnliche Worte besser nicht in den Betreffzeilen seiner eigenen E-Mails benutzt. Es sei denn, man will gar nicht, daß sie gelesen werden.
Hier finden Sie einen Link zur empfohlenen .procmailrc des Mathematischen Instituts. Mit dieser Setzung werden Spam-Mails in einem separaten Verzeichnis angelegt. |
![]() | Letzte Änderung: 2003-08-19 12:00:16 |