Dans l’un de mes précédents billets, je vous indiquais comment alimenter votre SpamAssassin pour le rendre plus intelligent.
J’ai semi-automatisé ce processus, et j’ai désormais dans ma boite mail, deux répertoires : SPAMS et HAMS. Dès que je rencontre un SPAM non détecté, je le déplace dans le dossier SPAMS. De la même manière, si un de mes mails licites est reconnu comme SPAM, je le copie dans HAMS.
Article mis à jour : ajout d’un mécanisme de rétention et diverses améliorations
Version 1.8 / 2016-09-17
Enfin, un batch tourne tous les jours durant la nuit : ce dernier scrute mes deux fameux répertoires et demande à SpamAssassin d’apprendre. Puis il compile les règles pour qu’elles soient plus rapides, les sauvegarde, et enfin les compresse. Tout simple non ?
Allez, voici ce fameux script :
#!/bin/bash # Alimentation de SpamAssassin en HAMs et SPAMs echo -e "### hamspam v1.8 2016-09-17\n" DIR_SPAM_MAILS="/home/facteur/arnove.biz/arnaud/.INBOX.SPAMS/cur" DIR_SPAM_ARCHIVES="/home/facteur/arnove.biz/arnaud/.INBOX.SPAMS.Archives/cur" DIR_HAM_MAILS="/home/facteur/arnove.biz/arnaud/.INBOX.HAMS/cur" DIR_HAM_ARCHIVES="/home/facteur/arnove.biz/arnaud/.INBOX.HAMS.Archives/cur" DIR_SAUVEGARDES="/var/sauvegardes/spamassassin" RETENTION=30 DATE=`date "+%Y-%m-%d"` if [ "$(ls -A $DIR_SPAM_MAILS)" ]; then echo "### 1/9 - TRAITEMENT DES SPAMS" cd $DIR_SPAM_MAILS sa-learn --spam --progress --file * echo "" echo "### 2/9 - ARCHIVAGE DES SPAMS" mv $DIR_SPAM_MAILS/* $DIR_SPAM_ARCHIVES/ else echo "### Etapes 1/9 et 2/9 ignorees car aucun SPAM collecte" fi if [ "$(ls -A $DIR_HAM_MAILS)" ]; then echo "### 3/9 - TRAITEMENT DES HAMS" cd $DIR_HAM_MAILS sa-learn --ham --progress --file * echo "" echo "### 4/9 - ARCHIVAGE DES HAMS" mv $DIR_HAM_MAILS/* $DIR_HAM_ARCHIVES/ else echo "### Etapes 3/9 et 4/9 ignorees car aucun HAM collecte" fi echo "" echo "### 5/9 - COMPILATION" sa-compile echo "" echo "### 6/9 - SAUVEGARDE" sa-learn --backup > $DIR_SAUVEGARDES/spamassassin-$DATE.txt echo "" echo "### 7/9 - COMPRESSION" gzip -f $DIR_SAUVEGARDES/spamassassin-$DATE.txt echo "" echo "### 8/9 - MENAGE" find $DIR_SAUVEGARDES -type f -mtime +$RETENTION -exec rm -f {} \; echo "" echo "### 9/9 - RESULTATS" ls -la $DIR_SAUVEGARDES echo "" echo "### That's all folks !"
N’oubliez pas ensuite de planifier quotidiennement son exécution via Crontab par exemple :
0 5 * * * /root/hamspam.sh