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


