sa-learn bzw. sa-wrapper Fehler

kantiran

Registered User
Hallo,

ich habe gemäß der huschis Anleitung den sa-wrapper installiert.
Nun sende ich also Mails die als SPAM erkannt werden sollen an spam@domain.tld und Mails die ok sind an ham@doain.tld.
Ich will also mails die fälschlicherweise als spam erkannt werden auf ham setzten und andersherum.

Ein sa-learn --dump zeigt mir an das sich da was tut. Die Zähler für nham und nspam verändern sich entprechend. Aber leider FALSCH.

Bsp. Ich schicke im eine Mail an spam@domain.tld
Er zählt den nspam-Zähler um eins hoch. OK.
Ich schicke im nun die gleiche Mail wieder an ham@domain.tld
Er zählt nspam um eins runter und nspam um eins hoch. Auch noch ok.

Aber nun das Problem. Er zählt den nham Zähler immer um ZWEI hoch.
Er müsste doch aber nham runterzählen und nspam hochzählen wenn
ich eine Mail von SPAM auf HAM setzten.

Die HAM - Markierung geht also
Setzte ich aber auf SPAM zählt er nham und nspam hoch.

Letzendlich passiert gar nix. Die E-Mails die ich von einem externen Account
nochmals versende werden immer noch gleich angezeigt. Der Status ändert sich also nicht.

Woran könnte das liegen.

sa-learn.log:
Code:
[28119] dbg: bayes: tie-ing to DB file R/O /var/spool/spamassassin/bayes_seen
[28119] dbg: bayes: found bayes db version 3
[28119] dbg: bayes: DB journal sync: last sync: 0
[28119] dbg: bayes: not available for scanning, only 5 spam(s) in bayes DB < 200
[28119] dbg: bayes: untie-ing
[28119] dbg: bayes: untie-ing db_toks
[28119] dbg: bayes: untie-ing db_seen
[28119] dbg: config: score set 1 chosen.
[28119] dbg: learn: initializing learner
[28119] dbg: bayes: bayes journal sync starting
[28119] dbg: bayes: bayes journal sync completed
[28119] dbg: bayes: expiry starting
[28119] dbg: locker: safe_lock: created /var/spool/spamassassin/bayes.lock.h1232389.stratoserver.net.28119
[28119] dbg: locker: safe_lock: trying to get lock on /var/spool/spamassassin/bayes with 0 retries
[28119] dbg: locker: safe_lock: link to /var/spool/spamassassin/bayes.lock: link ok
[28119] dbg: bayes: tie-ing to DB file R/W /var/spool/spamassassin/bayes_toks
[28119] dbg: bayes: tie-ing to DB file R/W /var/spool/spamassassin/bayes_seen
[28119] dbg: bayes: found bayes db version 3
[28119] dbg: locker: refresh_lock: refresh /var/spool/spamassassin/bayes.lock
[28119] dbg: bayes: DB expiry: tokens in DB: 515, Expiry max size: 150000, Oldest atime: 1058995800, Newest atime: 1175788807, Last expire: 0, Current time: 1175788808
[28119] dbg: bayes: expiry completed
[28119] dbg: learn: learning ham
[28119] dbg: dns: name server: 81.169.163.104, family: 2, ipv6: 0
[28119] dbg: dns: testing resolver nameservers: 81.169.163.104, 81.169.163.106
[28119] dbg: dns: trying (3) akamai.com...
[28119] dbg: dns: looking up NS for 'akamai.com'
[28119] dbg: dns: NS lookup of akamai.com using 81.169.163.104 succeeded => DNS available (set dns_available to override)
[28119] dbg: dns: is DNS available? 1
[28119] dbg: metadata: X-Spam-Relays-Trusted:
[28119] dbg: metadata: X-Spam-Relays-Untrusted:
[28119] dbg: metadata: X-Spam-Relays-Internal:
[28119] dbg: metadata: X-Spam-Relays-External:
[28119] dbg: plugin: Mail::SpamAssassin::Plugin::TextCat=HASH(0x92618b0) implements 'extract_metadata'
[28119] dbg: message: ---- MIME PARSER START ----
[28119] dbg: message: main message type: text/plain
[28119] dbg: message: parsing normal part
[28119] dbg: message: added part, type: text/plain
[28119] dbg: message: ---- MIME PARSER END ----
[28119] dbg: message: no encoding detected
[28119] dbg: textcat: message too short for language analysis
[28119] dbg: textcat: X-Languages: "", X-Languages-Length: 0
[28119] dbg: locker: refresh_lock: refresh /var/spool/spamassassin/bayes.lock
[28119] dbg: bayes: 25587ed3dfaa6532fc9e20177019ceec3ba0b0a7@sa_generated already learnt as opposite, forgetting first
[28119] dbg: locker: refresh_lock: refresh /var/spool/spamassassin/bayes.lock
[28119] dbg: bayes: learned '25587ed3dfaa6532fc9e20177019ceec3ba0b0a7@sa_generated', atime: 1175788808
[28119] dbg: bayes: untie-ing
[28119] dbg: bayes: untie-ing db_toks
[28119] dbg: bayes: untie-ing db_seen
[28119] dbg: bayes: files locked, now unlocking lock
[28119] dbg: locker: safe_unlock: unlink /var/spool/spamassassin/bayes.lock
Learned tokens from 1 message(s) (1 message(s) examined)


spam_error.log:
Code:
MIME-tools: debug:       encoding?         7bit
MIME-tools: debug:    field param <format> = <flowed>
MIME-tools: debug:    field param <charset> = <ISO-8859-15>
MIME-tools: debug:       effective type?   text/plain
MIME-tools: debug:    field param <format> = <flowed>
MIME-tools: debug:    field param <charset> = <ISO-8859-15>
MIME-tools: debug:       no filename recommended: synthesizing our own
MIME-tools: debug:    field param <format> = <flowed>
MIME-tools: debug:    field param <charset> = <ISO-8859-15>
MIME-tools: debug:    field param <format> = <flowed>
MIME-tools: debug:    field param <charset> = <ISO-8859-15>
MIME-tools: debug:       planning to use 'msg-28117-1.txt'
MIME-tools: debug:       outputting body to disk file: /var/spool/unpack/msg-1175788807-28117-0/msg-28117-1.txt
MIME-tools: debug:    field param <format> = <flowed>
MIME-tools: debug:    field param <charset> = <ISO-8859-15>
MIME-tools: debug:    parsing part 2...
MIME-tools: debug:       process_header
MIME-tools: debug:    field param <name> = <TEST>
MIME-tools: debug:       type = message, subtype = rfc822
MIME-tools: debug:       process_singlepart...
MIME-tools: debug:       using temp file
MIME-tools: debug:       extract uuencode? 0
MIME-tools: debug:       encoding?         7bit
MIME-tools: debug:    field param <name> = <TEST>
MIME-tools: debug:       effective type?   message/rfc822
MIME-tools: debug:    field param <filename> = <TEST>
MIME-tools: debug:       is this evil? 'TEST'
MIME-tools: debug:       it's ok
MIME-tools: debug:       planning to use 'TEST'
MIME-tools: debug:       outputting body to disk file: /var/spool/unpack/msg-1175788807-28117-0/TEST
MIME-tools: debug:    field param <name> = <TEST>
MIME-tools: debug:    process_epilogue
MIME-tools: debug:    field param <boundary> = <------------080205030907090206080002>
MIME-tools: debug:    field param <format> = <flowed>
MIME-tools: debug:    field param <charset> = <ISO-8859-15>
MIME-tools: debug:    field param <name> = <TEST>

Hätte nicht gedacht das der spamassassin so kompliziert und schwierig ist.
Da muss man echt ein Überflieger sein um das hin zu kriegen.
Hat vielleicht jemand eine Idee? Liegst am sa_wrapper.pl, das da ein
Fehler drin ist?

kantiran
 
Hallo!

Mit dem Lernen per Email wird die Bayes Datenbank von SA mit Spam und Ham trainiert. Die Bayes Filter arbeiten aber erst per Default ab 200 gelernten Spam und Ham Einträgen, da sonst die Fehlerquote zu hoch wäre.

Sind denn schon so viele Einträge in Deiner DB drin? Ansonsten mußt Du weiter verfüttern, bis diese Zahlen erreicht sind.

Gruß flyingoffice
 
Last edited by a moderator:
Er zählt nspam um eins runter und nspam um eins hoch.
Einmal runter und einmal hoch macht den alten Wert. :)

Er zählt den nham Zähler immer um ZWEI hoch.
Wie sieht die Email denn konkret aus, die Du schickst?
Bzw. andere Frage:
Hast Du SpamAssassin so eingestellt, daß die Spam-Mails als Anhang weitergeschickt werden?
(Siehe "man Mail::SpamAssassin::Conf" und suche nach "report_safe".)

bayes: not available for scanning, only 5 spam(s) in bayes DB < 200
Dazu hat flyingoffice bereits was geschrieben. Aber hier steht es als Beweis dafür.

Letztendlich lese ich aus Deinen Postings hier und im FAQ-Bereich, daß Du eine falsche Vorstellung hast, was der Bayes-Filter bewirkt. Schau dazu vielleicht nochmal bei Wikipedia vorbei.

huschi.
 
Hast Du SpamAssassin so eingestellt, daß die Spam-Mails als Anhang weitergeschickt werden?
(Siehe "man Mail::SpamAssassin::Conf" und suche nach "report_safe".)
report_safe = 1

Das sollte also passen.

daß Du eine falsche Vorstellung hast, was der Bayes-Filter bewirkt. Schau dazu vielleicht nochmal bei Wikipedia vorbei.

Da hast Du vielleicht recht.
Ich besorg mir mal ein paar Spammails und füttere den SA damit.

Und wenn ich über 200 SPAMs habe teste ich das nochmal einzeln.

Die Moral von der Geschicht ist wenn ich das richtig verstehe, daß
der SA beim gezielten umstellen einer Mails von bpsw. HAM auf SPAM
dies nicht einfach tut, sondern sehr wohl noch seine bisherigen
"Erfahrungen" und Regeln mit zu Rate zieht.

Wenn´s dann später gut klappt, kann ich gut damit leben.

Danke,
kantiran
 
Hallo!

Bezüglich des Umlernens würde ich nochmal die Variante mit einem vorherigen Aufruf mit --forget versuchen (weitere Informationen mit sa-learn --help). Diese Möglichkeit ist aber zur Zeit nicht im Howto enthalten, kann aber sehr leicht nachgerüstet werden:

1. Eine Emailadresse einrichten (zB. saforget@domain.tld)
2. Die Datei /var/qmail/mailnames/domain.tld/saforget/.qmail editieren und folgende Einträge vornehmen:
Code:
|/var/qmail/bin/preline /usr/local/bin/sa-wrapper.pl --forget
#./Maildir/
Gruß flyingoffice

PS: Das ist jetzt ungetestet runtergeschrieben. Nach einem prüfenden Blick in den Wrapper sollte das aber so funktionieren.
 
Last edited by a moderator:
report_safe = 1
Hast Du den Rest der Manpage gelesen?
Hast Du gelesen, was der Wrapper eigentlich macht?

Kurz gesagt für report_safe=1:
- Eine erkannte Spammail erhält einen neuen Body (den Report) und die ursprüngliche Email wird als Anhang bei gefügt.
- Du leitest diese als Anhang an ham@... weiter. (Mit gezählt? Richtig: jetzt sind es 2 Anhänge!)
- Diese zwei Anhänge werden vom Wrapper extrahiert und einzeln an sa-learn mit --ham verfüttert.

Ich persönlich bin ein Fan von report_safe=0. Andererseits ist es wohl nicht schädlich den Report als Ham anzulernen. :)

huschi.
 
Super. Langsam kapier ich das ganze.
Obwohl einen Eid würd ich wohl auch nicht drauf ablegen ;)

Da hab ich ja noch einiges zu tun.....

kantiran
 
Back
Top