Un po’ di tempo fa ho scritto un articolo su come configurare Virtual Users And Domains With Postfix, Courier, MySQL (Ubuntu 8.04 LTS 64bit), ora a partire da questo articolo vediamo come poter migliorare l’identificazione dello spam tramite il comando sa-learn di spamassassin, e l’utilizzo dell’opzione –spam e –ham.
Innanzitutto facciamo una distinzione fra Spam e Ham
Spam : sono le email indesiderate che non si vogliono ricevere, e che quindi vanno scartate, taggate o comunque a cui va fatto aumentare il valore di spam in caso di matching del contenuto con i nostri db di spam.
Ham: sono le mail buone (Ham = prosciutto BUONO!), le email che quindi vogliamo tenere.
Dalla nostra webmail, creiamo una cartella che si chiama Spam e che verrà quindi creata sul filesystem in una cartellina che si chiama .Spam
Ricordando brevemente la struttura delle directory che abbiamo assegnato per ogni email avremo una struttura simile alla seguente
ls -al /home/vmail/domain.tld/info
drwx------ 6 vmail vmail 4096 2010-02-23 19:18 .Bozze
drwx------ 6 vmail vmail 4096 2010-02-23 19:18 .Cestino
drwx------ 2 vmail vmail 4096 2010-04-07 12:05 courierimapkeywords
-rw-r--r-- 1 vmail vmail 105 2010-02-23 19:48 courierimapsubscribed
-rw-r--r-- 1 vmail vmail 1193 2010-04-07 11:56 courierimapuiddb
drwx------ 2 vmail vmail 4096 2010-04-07 12:01 cur
drwx------ 6 vmail vmail 4096 2010-04-07 12:41 .Drafts
drwx------ 2 vmail vmail 4096 2010-04-07 11:56 new
drwx------ 6 vmail vmail 4096 2010-04-07 12:43 .Sent
drwx------ 6 vmail vmail 4096 2010-02-23 15:53 .sent-mail
drwx------ 6 vmail vmail 4096 2010-02-23 19:18 .Spam
drwx------ 6 vmail vmail 4096 2010-02-23 19:51 .Templates
drwx------ 2 vmail vmail 4096 2010-04-07 16:51 tmp
drwx------ 6 vmail vmail 4096 2010-03-02 20:22 .Trash
Tutti le email di tutti i domini hanno questa struttura, quindi cosa succede…
Quando dalla nostra webmail vediamo che c’è un’email che ha passato i nostri antispam, non facciamo altro che dire “no questa email la sposto nella cartellina Spam!”. (da horde c’è un opzione che permette eventualmente di marcare un’email come spam e automaticamente spostarla in quella cartella).
A questo punto noi avremo che in:
/home/vmail/domain.tld/info/cur = avremo le mail buone (Ham)
mentre in
/home/vmail/domain.tld/info/.Spam = avremo le email di Spam
Sfruttando questo possiamo creare una regola ad hoc, per fare “imparare” a spamassassin, quali sono le mail buone e quali quelle cattive.
Mettiamo tutto in crontab per ottenere questo:
20 * * * * /usr/bin/sa-learn --spam /home/vmail/*/*/.Spam/* &> /dev/null
10 * * * * /usr/bin/sa-learn --ham /home/vmail/*/*/cur/* &> /dev/null
Ai 10 e 20 minuti di ogni ora verranno fatti gli aggiornamenti e il nostro sistema “imparerà” da noi quali sono le mail che non sono spam.
