[SOLVED] Spamassassin won't autolearn

t_goo_t

New Member
Jun 2, 2022
3
1
3
Hello dear Forum

I am trying to get autolearn for the bayesian filter running but it won't work when I artificially try to trigger it.

As I understood it, there are the following prerequisites for the autolearn to hit and learn spam:
- "Use Bayesian filter" shall be set to "Yes" under "Spam Detector" -> "Options"
- Overall score has to be greater than the value set in "bayes_auto_learn_threshold_spam" (which is 12 in /usr/share/spamassassin/10_default_prefs.cf)
- From this score at least 3 points must be from the header and 3 from the body

With a score of 21, still the logs show "autolearn=no":
Code:
pmg-smtp-filter[22249]: 2E15D9629845E94FC37: SA score=21/5 time=4.205 bayes=0.00 autolearn=no autolearn_force=no hits=BAYES_00(-1.9),CUSTOM_FOR_BAYESIAN(15),CUSTOM_FOR_BAYESIAN_B(3),CUSTOM_SUBJECT_SUBSTRING_MASTERCARD_CI(0.5),CUSTOM_SUBSTRING_SPENDE_CI(1),CUSTOM_SUBSTRING_VEREINIGTENSTAATEN_CI(1),DKIM_SIGNED(0.1),DKIM_VALID(-0.1),DKIM_VALID_AU(-0.1),DKIM_VALID_EF(-0.1),HTML_MESSAGE(0.001),RAZOR2_CF_RANGE_51_100(1.886),RAZOR2_CHECK(0.922),SPF_HELO_NONE(0.001),SPF_PASS(-0.001),T_SCC_BODY_TEXT_LINE(-0.01)

The custom_for_bayesian* rules are defined as following (So it should be 3 from body and 3 from header. Right?):
Code:
body CUSTOM_FOR_BAYESIAN_B /keyword/i
score CUSTOM_FOR_BAYESIAN_B 3
describe CUSTOM_FOR_BAYESIAN_B Train Bayesian

header CUSTOM_FOR_BAYESIAN Subject=~/keyword/i
score CUSTOM_FOR_BAYESIAN 15
describe CUSTOM_FOR_BAYESIAN Train Bayesian

We know bayes autolearning should work, because there are some mails which are learned. Here an example:
Code:
pmg-smtp-filter[13114]: 2E12296297075223F40: SA score=29/5 time=3.487 bayes=1.00 autolearn=spam autolearn_force=no hits=AWL(0.148),BAYES_99(3.5),BAYES_999(0.2),CUSTOM_SUBSTRING_000_CI(0.2),CUSTOM_SUBSTRING_DONATION_CI(1),DKIM_SIGNED(0.1),DKIM_VALID(-0.1),DKIM_VALID_AU(-0.1),DKIM_VALID_EF(-0.1),FREEMAIL_FORGED_REPLYTO(2.095),FREEMAIL_REPLYTO_END_DIGIT(0.25),FROM_NTLD_REPLY_FREEMAIL(0.444),FROM_SUSPICIOUS_NTLD(0.498),FROM_SUSPICIOUS_NTLD_FP(1.998),KAM_SOMETLD_ARE_BAD_TLD(5),LOTS_OF_MONEY(0.001),MISSING_MID(0.497),MONEY_FREEMAIL_REPTO(1.988),PDS_OTHER_BAD_TLD(1.997),RCVD_IN_BL_SPAMCOP_NET(1.347),RCVD_IN_HOSTKARMA_BL(1.5),RCVD_IN_SBL_CSS(3.335),REPTO_419_FRAUD_GM_LOOSE(1),SPF_HELO_PASS(-0.001),SPF_PASS(-0.001),T_SCC_BODY_TEXT_LINE(-0.01),URIBL_CSS_A(0.1),URIBL_DBL_SPAM(2.5)

Also, the database shows that it is learning:
Code:
sa-learn --dump magic
0.000          0          3          0  non-token data: bayes db version
0.000          0       7850          0  non-token data: nspam
0.000          0      63026          0  non-token data: nham
0.000          0     122696          0  non-token data: ntokens
0.000          0 1653445359          0  non-token data: oldest atime
0.000          0 1654148131          0  non-token data: newest atime
0.000          0 1654148178          0  non-token data: last journal sync atime
0.000          0 1654135810          0  non-token data: last expiry atime
0.000          0     691200          0  non-token data: last expire atime delta
0.000          0      14135          0  non-token data: last expire reduction count

We are getting more and more of this spam mails. Thanks to God there is the recipient’s name in a certain pattern in the subject and body, so at the moment we can filter for that. As over time more and more recipients are affected, I would like not to relay on filtering the username in subject and body because this does not sound right to me and creating two additional rules per user seems wrong... So, I thought, let’s try to get the bayes to recognize it.

The mails do always have a similar appearance so there may be some patterns for bayes to use. However, they always are coming from different IP-Addresses, different senders, contain a short text and sometimes an image and are filled with some random text at the bottom which seems to be stolen from Wikipedia.

Here an example ("m username" as placeholder for the real "username" and removed our url):
Guten Abend m username,

m username, kenn!en Sie eigentlich schon die einfachste Option, um echte Tabletten bei der Doktor Apotheke ohne ner&vige Fragen und mit K%aeuferschutz zu ordern?

http://www.potenzmittel-eu.de

Mit angenehmen Gruessen
Dr. Arya Ehrenfeld












IMG #Hermann von Widerhofer Hermann von Widerh&ofer (* . März in Weyer an der Enns; † . Juli in Bad Ischl) war ein österreichischer Pädiater und erster ordentlicher Professor für Kinder#heilkunde im deutschsprachigen Raum. Inhaltsverzeichnis * Leben * Schaff#en * Literatur * Weblinks LebenBearbeiten | Quelltext bearbeiten Hermann von Widerhofer war der Sohn des letzten Wundbaders der Marktgemeinde Weyer an der Enns und studierte Medizin in Wien, !war bis Sekundararzt in der Findelanstalt und trat als Assistent des Klinikc^hefs Franz Mayr ins St. Anna Kinderspital ein. habilitierte er sich für Kinderheilkunde und wurde – nach dem Tod Mayrs – zum Direktor des Spitals bestellt. wurde er zum außerordentlichen Professor und zum ersten ordentlichen Professor und Vorstand der Klinik für Kinderkrankheiten ernannt. Widerhofer führte zusammen mit zwei anderen Ärzten am . Januar in der Wie ner Hofburg die Obduktion des Kronprinzen Rudolf von Öst!erreich-Ungarn durch. Er erhielt den Orden der Eisernen Krone . Klasse und wurde in den Freiherrenstand erhoben. Hermann von Wider@hofer starb am . Juli in* Bad Ischl. Er ist auf dem Hietzinger F^riedhof bestattet. Im neunte@n Wiener Gemeindebezirk wurden ihm eine Gasse und ein Platz gewidmet. Im Arkadenhof des Hauptgebäudes der Universität Wien wurde für H&ermann von Widerhofer / ein vom Bildhauer Richard Kauffungen (–) gestaltetes Denkmal errichtet. SchaffenBearbeiten | Quelltext bearbeiten Er war Leibarzt der Kinder des österreichischen Kaiserhauses und trug so dazu bei, da#ss die Kinderheilkunde rasch universitäre Anerkennung fand und die Wiener pädiatrische Schule eine führende Stellung im deutschen @Sprachraum erlangte. Besondere Verdienste erwarb er sich um die Behandlung der Diphtherie. Seine Abhandlung über Krankheiten des Magens und Darms wurde Grundlage für die weitere Entwicklung dieser Lehre. Literatur Bearbeiten | Quelltext bearbeiten * Constantin von Wurzbach: Widerho&fer, Hermann. In: Biographisches Lexikon des Kaiserthums Oesterreich. . Theil. Kaiserlich-königliche Hof- und Staatsdruckerei, Wien , S. f. (Digitalisat). WeblinksBearbeiten | Quelltext bearbeiten Commons: Hermann von Widerhofer – Sammlung von Bildern * Todesanzeige für Dr. Hermann Freiherr v. Widerhofer. In: Neue Freie Presse, . Juli , S. (Online bei ANNO).V!orlage:ANNO/Wartung/nfp * Eintrag zu Widerhofe^r Hermann von im Austria-Forum (im AEIOU-Österreich-Lexikon) * H#ermann von Widerhofer im Wien Geschichte Wiki der Stadt Wien Normdaten (Person): GND: (OGND, AKS) | VIAF: | Wikipedia-Personensu!che Personendaten NAME Widerhofer, Hermann von KURZBESCHREIBUNG österreichischer Pädiate%r GEBURTSDATUM . März GEBURTSORT Weyer an der Enns STERBEDATUM . Juli STERBEORT Bad Ischl Abgerufen von „ Katego!rien: * Pädiater *@ Hochschullehrer (Univ%ersität Wien) * Mitglied des Herrenhauses (Österrei ch) * Mediziner (. Jahrhundert) * Träger des Ordens der Eisernen Krone (I. Klasse) * Person (Kaisertum Österreich) * Geboren * Gestor!ben * Mann Navigationsmenü Meine Werkzeuge * Nicht angemeldet * Diskussionsseite * Beiträge $* Benutzerkonto erstellen * Anmelden Namensräume * A!rtikel * Diskussion Deutsch Ansichten * Lesen * Bearbeiten * Quelltext bearbeiten * Versionsgeschi@chte Weitere Suche _____________________ Suchen $ Artikel Navigation * Hauptseite * Themenportale * Zufälliger Artikel Mitmachen * Artikel verbessern * Neuen Artikel anlegen * Autorenportal * Hilfe * Letzte Änderungen * Kontakt * Spenden Werkzeuge * Links auf diese Seite * Änderungen an verlinkten Seiten * Spezialseiten * Permanenter Link * Seiteninformationen * Artikel zitieren * Wikidata-Datenobjekt Drucken/exportieren * Buch erstellen * Als PDF herunterladen * Druckversion In anderen Projekten * Commons In anderen Sprachen * Čeština * Português Links bearbeiten * Diese Seite wurde zuletzt am . Juni um : Uhr bearbeitet. * Abrufstatistik · Autoren Der Text ist unter der Lizenz „Creative Commons Attribution/Share Alike“ verfügbar; Informationen zu m username oururl box hochrangige Straße/Wartung/CY-A Autobahn A in Zypern A (Zypern) Karte IMG Basisdaten Betreiber: Straßenbeginn: Alambra Straßenende: Larnaka Gesamtlänge: km davon in Betrieb: km (Bezirk): * Bezirk Nikosia * Bezirk Larnaka Straßenverlauf IMG A IMG Pera Chorio IMG Lympia IMG Athienou IMG A weiter auf B B Die Autobahn A ist eine Autobahn in Zypern. Die Straße bildet eine Verbindung zwischen der A nach Nikosia und der Stadt Larnaka. Die Autobahn ist Kilometer lang. StraßenbeschreibungBearbeiten | Quelltext bearbeiten Bei der Ortschaft Alambra beginnt die Autobahn an einem Kreuz mit der A, die in Richtung Nikosia nach Norden bzw. in Richtung Limassol in Südosten führt. Die Autobahn ist vierspurig ausgebaut. Sie führt an einer Reih e von Dörfern und kleinen Städten vorbei und bleibt weitgehend nördlich der zentralen Bergkette von Zypern. Die Autobahn führt sehr nah an der Grenze zum türkischen Teil von Zypern vorbei. Auf der Westseite von Larnaka endet die A an einem Kreuz mit der A bzw. B, wobei die B in das Stadtzentrum von Larnaka führt. GeschichteBearbeiten | Quelltext bearbeiten Die A ist eine der ersten Autobahnen in Zypern wo auch das erste Autobahnkreuz mit der A gebaut wurde. WeblinksBearbeiten | Quelltext bearbeiten * Informationen auf wegenwiki.nl (niederländisch) Autobahnen auf Zypern Autobahnen Autobahn auf A · A · A · A · Zypern A · A · A · A · A B · B · B · B · Hauptstraßen . Ordnung B · B · B · B · Hauptstraßen auf Zypern B · B · B · B · B · B · B · B Abgerufen von „ Kategorien: * Autobahn in Zypern * Straße in Asien * Straße in der Republik Zypern Navigationsmenü Meine Werkzeuge *� �Nicht angemeldet * Diskussionsseite * Beiträge * Benutzerkonto erstellen * Anmelden Namensräume * Artikel * Diskussion Deutsch Ansichten * Lesen * Bearbeiten * Quelltext bearbeiten * Versionsgeschichte Weitere Suche _____________________ Suchen Artikel Navigation * Hauptseite * Themenportale * Zufälliger Artikel Mitmachen * Artikel verbessern * Neuen Artikel anlegen * Autorenportal * Hilfe * Letzte Änderungen * Kontakt * Spenden Werkzeuge * Links auf diese Seite * Änderungen an verlinkten Seiten * Spezialseiten * Permanenter Link * Seiteninformationen * Artikel zitieren * Wikidata-Datenobjekt Drucken/exportieren * Buch erstellen * Als PDF herunterladen * Druckversion In anderen Sprachen * Ελληνικά * English * Français * ქართული * Nederlands * Svenska * اردو Links bearbeiten * Diese Seite wurde zuletzt am . November um : Uhr bearbeitet. * Abrufstatistik · Autoren Der Text ist unter der Lizenz „C reative Commons Attribution/Share Alike“ verfügbar; Informationen zu den Urhebern und zum Lizenzstatus eingebundener Mediendateien (etwa Bilder oder Videos) können im Regelfall durch Anklicken dieser abgerufen werden. Möglicherweise unterliegen die Inhalte jeweils zusätzlichen Bedingungen. Durch die Nutzung dieser Website erklären Sie sich mit den Nutzungsbedingungen und der Datenschutzrichtlinie einverstanden. Wikipedia® ist eine eingetragene Marke der Wikimedia Foundation Inc. * Datenschutz * Über Wikipedia * Impressum * Mobile Ansicht * Entwickler * Statistiken * Stellungnahme zu Cookies * Wikimedia Foundation * Powered by MediaWiki References Visible links . . . . . . . . . . . . Vorlage:Infobox hochrangige Straße/Wartung/CY-A (Seite nicht vorhanden) . . . Alambra . Larnaka . Republik Zypern . Bezirk Nikosia . Bezirk Larnaka . . . . Pera Chorio . . Lympia (Seite nicht vorhanden) . . Athienou . . . B (Zypern) . . Republik Zypern . A (Zyper n) . Nikosia . Larnaka . Abschnitt bearbeiten: Straßenbeschreibung . Abschnitt bearbeiten: Straßenbeschreibung . Alambra . A (Zypern) . Limassol . Türkische Republik Nordzypern . A (Zypern) . B (Zypern) . Abschnitt bearbeiten: Geschichte . Abschnitt bearbeiten: Geschichte . Abschnitt bearbeiten: Weblinks . Abschn

Thank you in advance for any contributions!
Best regards
t_goo_t
 
Last edited:
Thank you for your response.


Yes, they are new mails - specifically they are the spam mails on which I test the configuration. We get about 15 of them per day.

I just don't get, why autolearn always results to "no".

It could be, that my interpretation of the "min 3 from head, min 3 from body" rule is wrong (please refer to first post custom.cf rules) or the scores from custom rules are not used to decide if a mail should be autolearnd at all.

Where on the system are the mails, which are moved to quarantine stored? Maybe I can try to use the "sa-learn" on command line to get some debug info.
 
Where on the system are the mails, which are moved to quarantine stored?
below `/var/spool/pmg` (the exact path depends on whether you have a cluster or single node - but `find /var/spool/pmg` should help you find them :)
 
  • Like
Reactions: t_goo_t
Thank you, appreciate it.


This are the results from a "spamassassin -D -t pathtomail":
Code:
.
.
Jun 9 13:31:22.691 [31296] dbg: learn: auto-learn: message score: 21.244, computed score for autolearn: 24.562
Jun 9 13:31:22.691 [31296] dbg: learn: auto-learn? ham=0.1, spam=12, body-points=5.201, head-points=15.091, learned-points=-1.9
Jun 9 13:31:22.692 [31296] dbg: learn: auto-learn: autolearn_force not flagged for a rule. Body Only Points: 5.201 (3 req'd) / Head Only Points: 15.091 (3 req'd)
Jun 9 13:31:22.692 [31296] dbg: learn: auto-learn? no: scored as spam but learner indicated ham (-1.9 < -1)
.
.

It seems like it won't autolearn if bayes are pretty sure, that it is ham:
auto-learn? no: scored as spam but learner indicated ham (-1.9 < -1)

Have learned theme by hand now.

Allso im testing the tflag autolearn_force. Not sure if it forces it to learn as ham or spam though... So I backed up our current bayes DB with "sa-learn --backup > backup.db"
Code:
header CUSTOM_RULE Subject=~/f surname/i
score CUSTOM_RULE 15
tflags CUSTOM_RULE autolearn_force

I now know why it behaves the way it does. It is expected to do so.

Again, thank you a lot.

Regards
t_goo_t
 
  • Like
Reactions: Stoiko Ivanov
Nice you found the root-cause :)
Please mark the thread as SOLVED - as this will help others looking for similar issues
 
  • Like
Reactions: t_goo_t

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!