Login
Newsletter
Werbung

Do, 6. November 2003, 00:00

Mini-HOWTO für bogofilter mit KMail

Vorwort

Bogofilter ist ein Bayes-Filter, er errechnet also die Wahrscheinlichkeit, daß eine Mail Spam enthält oder nicht. Mehr soll zu dem Thema hier nicht gesagt werden. Dazu gibt es in der c't 17/2003 einen sehr guten Artikel. Die Anleitung soll konkret zeigen, wie man bogofilter mit KMail benutzt. Ich benutze KMail mit einem POP3-Zugang. IMAP habe ich nicht getestet, soll aber auch gehen.

Vorbereitung

Zuerst werden in KMail zwei neue Verzeichnisse im Maildir-Format angelegt. Sie werden benötigt, um bogofilter zu trainieren, welche Mails Spam oder nicht Spam sind.

Benenne diese Verzeichnisse nonspam und spam.

Sortiere anschließend so viel typische Spammails und "gute Mails" wie möglich in diese Verzeichnisse. Je typischer diese Mails jeweils sind, desto besser wird später die Spamerkennungsrate sein.

Filterregeln

Nun müssen in KMail nur noch ein paar Filterregeln erstellt werden, damit KMail jede ankommende Mail zuerst durch den bogofilter laufen lässt.

Die Filterregeln in KMail werden grundsätzlich von oben nach unten abgearbeitet. Filterregeln für Mailinglisten o.ä. müssen also möglicherweise über den Regeln für bogofilter stehen.

Die Regeln sollten so aussehen:

bogofilter_ist_spam

Im Menü für EinstellungenFilter einrichten...neuumbenennen...: bogofilter_ist_spam

Filterbedingungen: Trifft auf alle Folgenden zu: "X-Bogosity" enthält "Yes"

Filteraktion:

verschieben in Ordner: spam
markieren als: ungelesen

Weitere Einstellungen:

Eingehende Nachrichten: aktiviert
Versendete Nachrichten: egal
zur manuellen Filterung: aktiviert
Bearbeitung hier Abbrechen: aktiviert

bogofilter

neuumbenennen...: bogofilter

Filterbedingungen: Trifft auf alle Folgenden zu: "Feld im Vorspann" passt auf regulären Ausdruck ".*"

Filteraktion: durch Programm leiten: bogofilter -epv

Weitere Einstellungen:

Eingehende Nachrichten: aktiviert
Versendete Nachrichten: egal
zur manuellen Filterung: aktiviert
Bearbeitung hier Abbrechen: NICHT! aktiviert

bogoheader

neuumbenennen...: bogoheader

Filterbedingungen: Trifft auf alle Folgenden zu: "Feld im Vorspann" passt auf regulären Ausdruck ".*"

Filteraktion:

Vorspann entfernen: X-Bogosity
Vorspann entfernen: X-Attachments

Weitere Einstellungen:

Eingehende Nachrichten: aktiviert
Versendete Nachrichten: egal
zur manuellen Filterung: aktiviert
Bearbeitung hier Abbrechen: NICHT! aktiviert

Die Regeln sollten anschließend in folgender Reihenfolge in der Liste stehen:

  • bogoheader
  • bogofilter
  • bogofilter_ist_spam

Nun muss nur noch die Datenbank von bogofilter mit den Beispielmails und den Spammails trainiert werden. Dies geschieht mit folgender Eingabe.

rm ~/.bogofilter/*.db
find ~/Mail/spam -type f | bogofilter -vvv -s -b
find ~/Mail/nonspam -type f | bogofilter -vvv -n -b

Die Erstellung der Datenbank kann sehr lange dauern! Auf einem 2 GHz-Rechner mit 10000 Mails dauert es etwa eine Stunde. Dies sollte man also gelegentlich mit einem Cronjob erledigen.

Ist dies erledigt, werden alle ankommenden Mails zuerst mit bogofilter geprüft und in den Header der Mail eine kleine Statistik geschrieben, wie bogofilter die Mail einschätzt. Spammails werden dann in den "spam"-Ordner verschoben und als ungelesen markiert. Nach meiner Erfahrung hat bogofilter dabei schon bei eher wenigen Trainingsmails (240 gute, 60 Spam) eine erstaunlich gute Trefferquote.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung