Page 1 of 1
Plesk & Spamassassin trainieren aus Maildir
Posted: 2007-10-10 13:30
by qco
In der KB von SWSOFT gibt es einen
Tipp, wie man Spamassassin aus einem Mailverzeichnis heraus trainieren kann.
Ich habe also jetzt ein bisschen Spam von Hand aussortiert und über IMAP in einen eigenen Ordner gepackt.
Auf dem Server liegen diese Mails jetzt als einzelne Files mit Namen wie
1192014882.M200363P14091V0000000000000036I0EEBDE58_6.lvps87-230-21-247.dedicated.hosteurope.de,S=1699:2,S
in einem Unterordner des Maildirs.
Wenn ich jetzt allerdings wie von SWSOFT vorgeschlagen
Code: Select all
/usr/local/psa/admin/sbin/spammng --bayes --mailname=mailname@domain.com --spam=1192014882.M200363P14091V0000000000000036I0EEBDE58_6.lvps87-230-21-247.dedicated.hosteurope.de,S=1699:2,S
aufrufe, bekomme ich nur
Code: Select all
Learned from 0 message(s) (0 message(s) examined).
was soviel heißt wie er hat die Datei nicht gefunden. In der Schleife funktioniert das dann natürlich auch nicht.
Jetzt habe ich testweise eine dieser Maildaten kopiert und einfach in
test umbennant und siehe da, es geht:
Code: Select all
Learned from 1 message(s) (1 message(s) examined).
Also liegt das Problem irgendwie in dem Dateinamen. Allerdings kann ich schlecht die Dateinamen der ganzen Mails ändern. Kann/ muss man den Namen irgendwie maskieren? Gibt's noch andere Ideen?
Re: Plesk & Spamassassin trainieren aus Maildir
Posted: 2007-10-11 12:24
by ekle
wahrscheinlich daran, dass er die mail schon kannte.
spamassassin hat einen schutz drin, damit er nicht zweimal von der gleichen mail lern, was die Ergebnisse verfälschen würde
Re: Plesk & Spamassassin trainieren aus Maildir
Posted: 2007-10-11 12:47
by oxygen
Du solltest den Dateinamen in Anführungszeichen setzten. Sonst wird = , etc von bash interpretiert.
Re: Plesk & Spamassassin trainieren aus Maildir
Posted: 2007-10-11 16:06
by qco
ekle wrote:wahrscheinlich daran, dass er die mail schon kannte.
Negativ, sonst würde er
Learned from 0 message(s) (1 message(s) examined).
melden.
oxygen wrote:Du solltest den Dateinamen in Anführungszeichen setzten. Sonst wird = , etc von bash interpretiert.
Code: Select all
/usr/local/psa/admin/sbin/spammng --bayes --mailname=mailname@domain.com --spam="1192014882.M200363P14091V0000000000000036I0EEBDE58_6.lvps87-230-21-247.dedicated.hosteurope.de,S=1699:2,S"
bringt leider keine Änderung. Einfache Anführungsstriche auch nicht. :?
Re: Plesk & Spamassassin trainieren aus Maildir
Posted: 2007-10-11 16:18
by qco
Nein, auch kein Erfolg, weder mit dem vollen Pfad noch mit "slashen"... Auch in Kombination mit Anführungszeichen oder ohne.
Re: Plesk & Spamassassin trainieren aus Maildir
Posted: 2007-10-11 19:05
by qco
Nein, die Mail war noch unbekannt. Die Ursache des Problems konnte ich nicht direkt finden, allerdings eigentlich einfachen Weg es zu umgehen.
Statt dieses Plesk-Skripts rufe ich direkt sa-learn auf; allerdings muss man dann händisch den Pfad zu den Spamassassin-Einstellungen des Users raussuchen.
Code: Select all
sa-learn --spam --dbpath /var/qmail/mailnames/domain.com/mailname/.spamassassin 1192014882.M200363P14091V0000000000000036I0EEBDE58_6.lvps87-230-21-247.dedicated.hosteurope.de,S=1699:2,S
funktioniert wie erhofft und kann man auch direkt das Verzeichnis angeben und er liest alle Files darin.
Re: Plesk & Spamassassin trainieren aus Maildir
Posted: 2007-11-04 13:36
by Anonymous
OK, ich hab das etwas anders gelöst.
Ich benenne die Datei um und lerne sie dann.
Das ganze in einem Skript, das stündlich ausgeführt wird.
Ist nicht perfekt, funktioniert aber.
Code: Select all
#/bin/bash
#
# Skript zum automatischen Lernen von Spam und Ham aus INBOX/Spam und INBOX/Ham
cd /var/qmail/mailnames
for maildomain in *; do
cd $maildomain
for mailname in *; do
if [ -x $mailname/Maildir ]; then
cd $mailname/Maildir/
pwd
if [ -x .Spam ]; then
for dir2learn in .Spam/cur .Spam/new .Spam/tmp; do
cd $dir2learn
for message in *; do
mv $message spam2learn
echo training $message for $mailname@$maildomain
/usr/local/psa/admin/sbin/spammng --bayes --mailname=$mailname@$maildomain --spam=spam2learn
rm spam2learn
done
cd /var/qmail/mailnames/$maildomain/$mailname/Maildir
done
fi
if [ -x .Ham ]; then
for dir2learn in .Ham/cur .Ham/new .Ham/tmp; do
cd $dir2learn
for message in *; do
mv $message ham2learn
/usr/local/psa/admin/sbin/spammng --bayes --mailname=$mailname@$maildomain --ham=ham2learn
rm ham2learn
done
cd ../..
done
fi
cd ../..
fi
done
cd ..
done
Setzt voraus, das (in diesem Fall) die Ordner Spam und Ham direkt in der Wurzel des Mailverzeichnisses liegen.
Die Variante mit sa-learn ist gut nutzbar, um die Spam-Lern-Funktion von Horde (Webmail) zu nutzen.
Dirk