# Traitement des Spams via spassassin, exim et signal spam

**URL:** <https://www.debian-fr.org/t/traitement-des-spams-via-spassassin-exim-et-signal-spam/9600>\
**Category:** Trucs et Astuces\
**Created:** [Février 20, 2016, 4:27 UTC](https://www.debian-fr.org/t/traitement-des-spams-via-spassassin-exim-et-signal-spam/9600 "2016-02-20T16:27:56Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 4:27 UTC](https://www.debian-fr.org/t/traitement-des-spams-via-spassassin-exim-et-signal-spam/9600/1 "2016-02-20T16:27:56Z")

</div>

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](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.
