Traitement des Spams via spassassin, exim et signal spam

C’est une collection de petits scripts finalement assez pratiques sur un serveur de courrier.

  1. Les utilisateurs font un fichier .forward comme suit afin que les spams ne soient pas dans leur mails mais dans un répertoire (/var/tmp/Spams):

# Exim filter if $h_X-Spam-Status contains "Yes," then logfile /var/log/spam.log logwrite "SPAM: $tod_log $message_id processed venant de $sender_address" save /var/tmp/Spams/ finish endif

  1. Le script suivant reconstitue le spam original sans les commentaires de spamassassin à partir du message dans /var/tmp/Spams:

[code]#!/bin/sh
BORNE=grep boundary $1 | head -n 1 | sed -e s'/^.*----=\(.*\)"/\1/'
DEBUT=grep -n $BORNE $1 | tail -n 2 | head -n 1 | sed -e 's/:.*$//'

grep -n $BORNE $1

FIN=grep -n $BORNE $1 | tail -n 1 | sed -e 's/:.*$//'
LONGUEUR=$[$FIN-$DEBUT-6]

echo $DEBUT $FIN $LONGUEUR

tail -n +$[$DEBUT+6] $1 | head -n $LONGUEUR
[/code]

appelons le getspam.

  1. Un programme fait par Pierre Beyssac avec un léger bug que j’ai corrigé pour qu’il fonctionne permet d’envoyer un ou plusieurs spam à signalspam. Il se récupère ici http://boisson.homeip.net/signalspam.py (en python 2.4 ou +)

(Le script suivant de Stephane Bortzmeyer ne fonctionne pas sans que je ne sache pourquoi

[code]

#!/bin/sh

result=openssl enc -base64 | curl --verbose --proxy "" --request POST \ --trace /tmp/curl \ --user login:pass \ --write-out "%{http_code}" --form message='&-' \ https://www.signal-spam.fr/api/signaler
if [ $result != “202” ]; then
echo "Error $result while reporting the spam"
exit 1
fi
[/code] curl me sort une erreur 400 sans arrêt…)

  1. Enfin un script virespam à éxécuter sous root récupère tous les spams du répertoire /var/tmp/Spams et les envoies à Signalspam.

#!/bin/sh cd /var/tmp/Spams ls | xargs -n 1 getspam > /tmp/SPAM ls /var/tmp/Spams/* | xargs rm signalspam.py < /tmp/SPAM

(mettre les scripts sous /usr/local/bin).
Signal Spam encaisse très bien de recevoir 300-400 spams d’un coup.

Ça peut surement être adapté sur d’autre configurations de serveur de courrier.