Login
Newsletter
Di, 6. Januar 2004, 13:07

Spams ausfiltern mit SpamProbe

In diesem Kurztipp werde ich beschreiben, wie man sein Postfach mit SpamProbe sauber hält.

Heutzutage ist ein Postfach ohne einen Spamfilter nicht mehr denkbar. Ein solcher Filter ist SpamProbe. Zuerst hatte ich SpamAssassin im Einsatz, der recht gut lief, aber wegen seiner starren Regeln zuviel Müll noch durchließ. Inwischen besitzt SpamAssassin auch einen Bayes-Filter, vor einem Jahr war das aber noch nicht der Fall. Zu diesem Zeitpunkt beschloß ich, auf SpamProbe umzusteigen, das ausschließlich auf dem Bayes-Filter beruht.

Jeder, der seine empfangenen Mails durch procmail leitet, kann SpamProbe ohne weiteres verwenden. Auf die Installation will ich nicht eingehen. Ist diese erledigt, kann die Konfiguration unter dem normalen Benutzeraccount geschehen.

Zuerst legen wir ein Arbeitsverzeichnis für SpamProbe an:

mkdir ~/.spamprobe

Dann müssen wir ~/.procmailrc editieren. Vor die erste vorhandene Regel schreiben wir folgendes:

:0
SCORE=| /usr/bin/spamprobe -s 1000 -X receive
:0 wf
| formail -I "X-SpamProbe: $SCORE"

:0 a:
*^X-SpamProbe: SPAM
trash

Nun ist SpamProbe einsatzbereit. Die SpamProbe-Datenbank ist allerdings leer. Um SpamProbe möglichst zuverlässig arbeiten zu lassen, empfiehlt es sich, eine größere Zahl (möglichst ca. 1000) von akzeptierten Emails durch SpamProbe laufen zu lassen. Dazu kann man sein Mailarchiv verwenden oder seine Eingangs-Mailbox, z.B. so:

spamprobe good ~/mbox

Das ergibt später weniger Streß mit »False Positives«, also Mails, die fälschlich als Spam eingestuft werden.

Jede ankommende Mail wird nun von SpamProbe analysiert, und Spams werden in den Ordner »trash« verschoben. Am Anfang wird SpamProbe jedoch alle Mails als »gut« klassifizieren. Wir müssen also Spams als solche markieren und SpamProbe das mitteilen. Eine Möglichkeit ist, die Mail in einem Ordner »trash2« zu speichern und aus dem Eingangsordner zu löschen. Von Zeit zu Zeit ruft man dann

spamprobe spam trash2

auf und löscht trash2. Schon nach kurzer Zeit wird SpamProbe erste Mails selbst als Spam erkennen und in den Ordner »trash« befördern. Schon bald sollte die Erkennungsrate bei 99 Prozent oder mehr liegen. Den Ordner »trash« sollte man zumindest am Anfang gelegentlich durchsehen, um False Positives zu entdecken. Mittlerweile mache ich das nicht mehr und lösche »trash« einfach von Zeit zu Zeit.

Je nach verwendetem Mailprogramm kann man eine Spam-Mail evtl. auch direkt an SpamProbe weiterreichen. Dadurch lernt SpamProbe unmittelbar und man spart sich den Ordner »trash2«.

Die Datenbank, die SpamProbe verwendet, kann im Laufe der Zeit leicht die Größe von 100 MB überschreiten. Man sollte sie also begrenzen. Dies erledigt bei mir ein Cronjob. Mit crontab -e definiert man ihn:

13 4 * * 2 spamprobe cleanup 4 14

Dies bedeutet, daß jeden Dienstag um 4:13 Uhr die Datenbank gestutzt wird. Die Zeiten sind natürlich frei wählbar, ebenso die beiden Parameter 4 und 14. Einzelheiten zu diesen finden Sie in der Dokumentation.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten