Tips: Trier ses mails en Bash en fonction d’une expression

Tips: Trier ses mails en Bash en fonction d’une expression

Si vous souhaitez trier vos mails, en bash, en fonction d’une expression, ou d’un header, vous pouvez le faire plutôt simplement, en bash.

Dans mon cas, il s’agit de trier les mails que je reçois sur une adresse pour différentes mailing list, afin de me faire des archives et de pouvoir, ainsi, créer des dossiers.

Je suis abonné à la liste HAProxy, ainsi qu’à plusieurs listes OVH, je souhaite trier les deux dans 2 dossiers différents.

La liste HAProxy est identifiable par un champ CC, la liste OVH est identifiable par un champ To.

Voici le petit script (en version développé pour commencer)

DIR=/var/spool/vmail/admin-serv.net/ml/cur/;
for files in `ls $DIR`;
do
M=`cat "$DIR$files" | grep "Cc: haproxy@formilux.org"`;
if [[ $M != '' ]];
then
mv $DIR$files /home/mailing_archive/haproxy/ ;
fi;
done;

Soit, en une ligne :

DIR=/var/spool/vmail/admin-serv.net/ml/cur/;for files in `ls $DIR`;do M=`cat "$DIR$files" | grep "Cc: haproxy@formilux.org"`;if [[ $M != '' ]];then mv $DIR$files /home/mailing_archive/haproxy/ ;fi;done;

Voilà, le tour est joué, à vous d’adapter en fonction de ce que vous souhaitez rechercher.

Laisser un commentaire

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