Cos'è il Bayes filter
Il Bayes filter in SpamAssassin è un classificatore statistico basato sul teorema di Bayes che apprende dalla classificazione di email passate (spam o ham) per stimare la probabilità che un nuovo messaggio sia spam. È uno dei test più potenti di SpamAssassin: con training adeguato può raggiungere accuracy superiori al 99% sui messaggi conosciuti.
Come funziona
Il filtro estrae token (parole, frammenti, header values) dai messaggi e calcola per ognuno la probabilità di essere associato a spam o ham nel corpus di training. Su nuovi messaggi, somma i pesi dei token presenti per arrivare a uno score complessivo. Più token discriminanti contengono i corpus, più efficace è il filtro.
Soglia minima di training
SpamAssassin richiede almeno 200 messaggi spam e 200 messaggi ham per attivare il bayes filter. Sotto questa soglia, il filtro non viene utilizzato perché statisticamente inaffidabile. È raccomandato puntare a 1.000+ messaggi per classe per training robusto.
Training manuale con sa-learn
Il comando sa-learn è il tool per il training. Per imparare spam: sa-learn --spam /path/to/spam/folder/. Per imparare ham: sa-learn --ham /path/to/ham/folder/. I path possono essere directory mbox, maildir, o file singoli. Il database bayes (di default in ~/.spamassassin/bayes_*) viene aggiornato incrementalmente.
Training automatico
SpamAssassin supporta autolearning: messaggi che superano una soglia score molto alta (default 12) vengono automaticamente classificati come spam, quelli con score molto basso (default 0.1) come ham. Configurabile in local.cf con bayes_auto_learn 1. Riduce il lavoro manuale ma può rafforzare bias preesistenti.
Feedback degli utenti
Sistema migliore: feedback degli utenti tramite cartelle dedicate. Utenti spostano falsi negativi (spam non rilevato) in cartella "Junk" e falsi positivi (ham marcato spam) in "Inbox". Script cron processa periodicamente queste cartelle con sa-learn appropriato e aggiorna il database bayes condiviso.
Manutenzione del database
Periodicamente eseguire sa-learn --sync per sincronizzare e sa-learn --force-expire per rimuovere token obsoleti. La crescita non controllata del database degrada performance. Monitorare dimensione con sa-learn --dump magic che mostra statistiche (numero token, messaggi appresi, oldest atime).
Best practice
Bilanciare spam e ham nel training (non solo spam), variare le fonti (utenti diversi, periodi diversi), evitare di marcare come ham messaggi promozionali borderline, fare backup periodici del bayes db prima di operazioni di massa. Monitorare percentuale di hit del test BAYES_99 nei log per misurare efficacia.
Hai bisogno di aiuto?
Se hai problemi di blacklist o deliverability email, il team di G Tech Group può aiutarti. Contattaci tramite il modulo di contatto.