[HACK] Capturez en temps réel les emails sous Linux

 

letters-burned

 

Salut à tous,

 

J'ai écrit pas mal d'articles au sujet des emails, et me concernant, je préfère fonctionner avec des redirecteurs ce qui évite de saturer mon serveur principal de message, spam, ....

 

Aussi Postfix, stocke quelques secondes les messages destinés à être redirigés....
Ensuite, une fois les messages réexpédiés, il les supprime !

 

bref, je me suis dit qu'il serait rigolo d'avoir un petit outil qui affiche en temps réel les mails qui transitent sur le serveur, directement depuis le terminal !

 

L’intérêt ?

 

Il y a de multiples intérêts, pour n'en citer que quelques uns, je dirais, que

  • c'est pas mal pour automatiser des validations d'adresse e-mail sans avoir à stocker les messages  ....
  • Ou bien pour surveiller une activité suspecte (flood, spam, ...)

 

Passons maintenant à la technique !

 
Le petit script ci-dessous, balaye en continu, votre "pile" (queue) d'email via la commande mailq.
Dès lors que mailq retourne l'arrivé d'un email, le script parse l'ID du mail.
Cet ID, permettra ensuite d'afficher le contenu du mail via la commande postcat

 

lid=""
while [ 1 = 1 ]; do
        res=`mailq | head -n 2 | tail -n 1`
        check=`echo $res | grep "Mail queue is empty"`
        if [ "e$check" == "e" ]; then
                id=`echo $res | cut -d' ' -f1`
                if [ "$lid" != "$id" ]; then
                        postcat -q -beh $id
                        lid=$id
                fi
        fi
done

 

Il ne vous reste plus qu'à faire un petit script bash avec ça !

 

 

Partagez ce contenu

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *