Ich fand für meine Zwecke einen Einbau in den Mechanismus
procmail am einfachsten. Procmail war bei mir schon
installiert, so daß ich für jeden Benutzer - so noch nicht
vorhanden - in seinem HOME-Verzeichnis eine Datei .forward
mit dem Inhalt
"|exec /usr/bin/procmail"
anlegen und die Datei .procmailrc um die Zeilen
:0fw: spamassassin.lock
* < 250000
| spamassassin
:0:
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
Maildir/.-SPAM-wahrscheinlich/
:0:
* ^X-Spam-Status: Yes
Maildir/.-SPAM-vielleicht/
:0
* ^^rom[ ]
{
LOG="*** Dropped F off From_ header! Fixing up. "
:0 fhw
| sed -e '1s/^/F/'
}
:0
Maildir/
ergänzen mußte.
Diese Weisheit stammt übrigens direkt aus der mitgelieferten
Datei procmailrc.example.
Achtung: Ich benutze einen Courier IMAP-Server,
der seine Mail in Maildir-Verzeichnissen ablegt. Deshalb beginnen
bei mir alle Ordner mit einem Punkt ('.') und enden mit einem Slash ('/').
Wer einen Mailserver mit der 'normalen' Mailbox-Ablage benutzt, schreibt
z.B. für die Ablage der einfachen SPAM-Mail
:0:
* ^X-Spam-Status: Yes
Mail/-SPAM-vielleicht
Der letzte Absatz
:0
Maildir/
muß dann auch entfallen.
Ich habe meinen SPAM-Verzeichnissen die Namen '-SPAM-vielleicht',
'-SPAM-wahrscheinlich' und '-SPAM-verifiziert' gegeben, damit sie
- wegen des Bindestrichs ('-') - nach oben in der Sortierung
der Ordner rutschen. Es sind natürlich beliebige Namen möglich.
Ich möchte nicht, daß mir ein übereifriger SPAM-Filter wichtige Mail,
die lediglich einige SPAM-Merkmale enthält, automatisch wegschmeißt.
Deshalb sehe ich die als SPAM klassifizierte Mail noch einmal kurz
durch. Wenn man, wie ich, wenig ausländische Mail-Partner hat und,
wie derzeit, die meiste SPAM aus englisch-sprachigen Ländern kommt,
ist es meist schon am Absender, spätestens aber am Betreff, möglich,
die Zuordnung zu verifizieren.
Der Vorgand dauert für 80 SPAMs am Tag lediglich 2 Minuten und ich
kann ihn, da die richtige Mail ja schon im normalen Postfach liegt,
jederzeit evtl. auch nur einmal pro Woche durchführen. Mir ist
bisher noch nie eine echte Mail als SPAM einsortiert worden;
aber mir ist wohler dabei, wenn ich die letzte Kontrolle habe.
Deshalb schaufele ich den verifizierten SPAM in einen Ordner
'-SPAM-verifiziert' um, aus dem dann der Bayes-Filter des SpamAssassin
lernen kann. Wer dem SpamAssassin hundertprozentig traut und sich die
visuelle Endkontrolle sparen will, der kann entweder allen SPAM oder
wenigstens den wahrscheinlichen direkt zum Training des Bayes-Filters
nehmen.
Alle echte Mail (außer dem Eingangs-Ordner und den SPAM-Ordnern) wird
vom Bayes-Filter als HAM (gute Mail) erlernt.
Echte Mail, die ich nur kurz lese und dann in den Mülleimer werfe,
wird dort auch als HAM gelernt und anschließend gelöscht.
Der Lernvorgang passiert bei mir einmal pro Tag (gegen 3:00 h morgens)
mit einem CRON-Job, der das folgende Skript startet.
MAILDIR="$HOME/Maildir"
SA_LEARN=/usr/local/bin/sa-learn
find $MAILDIR/.-SPAM-verifiziert -type f -name "[0-9]*" -size -200k -print0 |
xargs -0 -r $SA_LEARN --spam
find $MAILDIR/.-SPAM-verifiziert -type f -name "[0-9]*" -print0 |
xargs -0 -r zip -jm $HOME/.spam.zip
find $MAILDIR/.[^.]* -path "*/.-SPAM*" -prune -false \
-o -type f -name "[0-9]*" -size -200k -print0 |
xargs -0 -r $SA_LEARN --ham
find $MAILDIR/.Trash -type f -name "[0-9]*" -print0 |
xargs -0 -r rm
Achtung: Auch hier
müssen natürlich für Rechner mit einem Mailbox-Mailserver die
Verzeichnisnamen angepaßt werden.