Unter „Training für SpamAssassin“ wurde bereits erklärt, wie man mit dem Hilfsprogramm sa-learn
das Erkennungsverhalten von SpamAssassin trainieren kann.
An dieser Stelle möchte ich noch mal ein konkretes Beispiel dazu dokumentieren.
Auf meinem Server verwende ich die Maildir-Verzeichnisstruktur, zum Speichern meiner E-Mails.
In meinem Fall befinden sich die bereits gelesenen E-Mails im Posteingang im Pfad /var/mail/vmail/example.org/username/mail/cur. Die in diesem Ordner liegenden E-Mails sind kein Spam. Dies kann SpamAssassin mit dem folgenden Befehl mitgeteilt werden:
# sa-learn --ham /var/mail/vmail/example.org/username/mail/cur/ --progress 100% [=========================================================================================================================] 10.43 msgs/sec 00m01s DONE Learned tokens from 13 message(s) (18 message(s) examined)
Spam landet in meinem Fall im Pfad /var/mail/vmail/example.org/username/mail/Junk/cur. Diese Mails können mit dem folgenden Kommando verarbeitet werden.
sa-learn --spam /var/mail/vmail/example.org/username/mail/Junk/cur
Weitere Informationen findet man auf der offiziellen Homepage von SpamAssassin.
Linux ist glaube ich hinsichtlich dieser „einfachen“ Vorgehensweise gegen Spam einfach toll =)
LG LoopyLinux
crontab -e
[...]
0 5 * * 0 /usr/bin/sa-learn --spam /var/www/web*/user/*/Maildir/.Junk/cur > /dev/null 2>&1
0 6 * * 0 /usr/bin/sa-update > /dev/null 2>&1
5 6 * * 0 /usr/bin/sa-compile > /dev/null 2>&1
[...]
Bitte mal kurz erklären, warum die nachfolgenden sa-update und sa-compile „besser“ sind?
Danke und Gruß
Christoph
Hallo Christoph,
zwar benutze ich diese beiden Kommandos (noch) nicht selbst, doch versuche ich mich mal an einer Erklärung.
Mit
sa-learn --ham
undsa-learn --spam
erstellt SpamAssassin ausschließlich aus den eigenen vorhandenen Mails Regelsätze. Das Kommandosa-update
lädt neue Regeln von einem Channel herunter. Durchsa-compile
kann das Regelwerk kompiliert werden. Ich vermute, dass übersetzter Code bedeutend schneller verarbeitet werden kann.Weitere Informationen bietet die Dokumentation:
VG
Jörg
Ich bekomme leider einen Error, hat wer eine Idee?
root@mail:~# sa-learn –ham –username amavis –dbpath /var/lib/amavis/.spamassassin /srv/vmail/*/Maildir/.Sent/cur/* –progress
-bash: /usr/bin/sa-learn: Die Argumentliste ist zu lang
! Bash shell expansion
Durch den Stern „*“ am Ende deiner Pfadangabe ersetzt die Bash deinen Pfad durch eine Liste JEDER Datei die sich dort defindet. Und weil nun jede Datei/Verzeichnis einzeln aufgelistet ist meckert sa-learn.
Anstelle von „sa-lear /var/path“ hast du dann
„sa-learn /var/path/file1 /var/path/file2 /var/path/file… /var/path/subdir…“
Probier es mal aus:
echo ./
echo ./*