ACHTUNG: Plesk/Qmail-User finden hier ein angepaßtes HowTo: Plesk: sa-learn per Email füttern

SpamAssassin filtert zu wenig Spams

Wer SpamAssassin auf seinem Server installiert hat, kennt das:
Hin und wieder (am Anfang recht häufig) kommen doch noch Spams durch.
Wie bekommt man jetzt diese Email aus seinem Mozilla/Thunderbird/KMail (habe ich einen wichtigen Client vergessen? Nö!) in sa-learn rein?

Diese Frage will ich heute klären:

(Die folgende Idee ist nicht von mir, sondern habe ich zufällig im Internet gefunden. Ich habe lediglich das Perl-Script etwas gekürzt ohne das Copyright zu entfernen und eine brauchbare Installationsanleitung geschrieben.)

Erklärung:

Wir wollen aus unserem Email-Client eine nicht erkannte Spam-Mail per Forward/Weiterleiten an spam@server.tld schicken. (Und zwar als Anhang! Ganz wichtig!)
Der Email-Server nimmt diese Mail entgegen, gibt sie an procmail weiter, dieser reicht sie dann an sa-wrap.pl durch, der dann den Anhang an sa-learn füttert.
Man beachte: Der Anhang wird verfüttert, nicht die ganze Email!

Vorraussetzung:

sa-learn ist bereits entsprechend konfiguriert und aktiv.

1.)
Es werden entsprechende Emailadressen gebraucht. Ich nenne sie mal spam@server.tld und ham@server.tld. Der Server muß so präperiert sein, daß er diese Emails annimmt und auf ein lokales Postfach legen will.

2.)
Wir brauchen das folgende Script unter /usr/local/bin/sa-wrap.pl (und zwar ausführbar als 755). (Download siehe unten.)

Achtung: wenn sa-wrap.pl zu einem Fehler kommt, dann versucht die neuere Version sa-wrapper.pl.

3.)
Wir brauchen eine /etc/procmailrc (Domain-Namen ändern!) bzw. als Ergänzung dazu:

#alte Versionen von procmail:
verbose=yes
#neue Versionen von procmail:
VERBOSE=ON
LOGFILE=/var/log/procmail.log

:0
* ^To: spam@server.tld
{
:0fw
| /usr/local/bin/sa-wrap.pl --spam
:0
/dev/null
}

:0
* ^To: ham@server.tld
{
:0fw
| /usr/local/bin/sa-wrap.pl --ham
:0
/dev/null
}

4.)
Die Logfiles und das unpack-Verzeichnis muß man evtl. mit der Hand anlegen, da dem MTA evtl. die nötigen Rechte fehlen:

touch /var/log/procmail.log
chown root:mail /var/log/procmail.log
chmod 775 /var/log/procmail.log
touch /var/log/sa-learn.log
chown root:mail /var/log/sa-learn.log
chmod 775 /var/log/sa-learn.log
mkdir /var/spool/unpack
chown root:mail /var/spool/unpack
chmod 775 /var/spool/unpack

Fertig

Nun könnt Ihr alle Spams und Hams als Anhang an die jeweilige Emailadresse schicken und der SA lernt!

Den Erfolg kann man dann in /var/log/sa-learn.log mit verfolgen.
Achtung: entweder Logrotate für die 2 Dateien einschalten, oder, wenn alles funzt einfach verbose, logfile und debug in den Dateien auskommentieren.

Fehlersuche:

In /var/log/procmail.log. Wenn dort nichts steht, dann sucht erstmal im maillog nach 'procmail'-Fehlern.

Download:

sa-wrap.pl (als gzip)
neuere Version: sa-wrapper.pl (als gzip).

Diskussion:

Bitte im Server-Support-Forum

Kategorien:

Stichwörter:

email · spam · ham · spamassassin · sa-learn · sa-wrap · sa-wrapper · procmail · logrotate · perl · script ·