J'utilise XMail
sur le serveur SMTP de mon adresse
marc@mongenet.ch.
Or à cause du spam et des virus, j'avais pas mal de messages
gelés dans les répertoires froz
du spool de XMail.
Pour supprimer un message il existe la commande
frozdel
:
CtrlClnt -s 127.0.0.1 -u admin -p secret frozdel "22" "0" "1189447644271.2975116208.880.rwxweb.vserver.nimag.net"
Les trois derniers paramètres de cette commande sont donnés par la commande
frozlist
:
CtrlClnt -s 127.0.0.1 -u admin -p secret frozlist >xmail.frozlist
Mais cette commande liste les messages sous le format :
"msgfile"[tab]"lev0"[TAB]"lev1"[TAB]"from"[TAB]"to"[TAB]"time"[TAB]"size"<CR><LF> ;
alors que frozdel
demande le format :
"lev0"[TAB]"lev1"[tab]"msgfile".
Pour supprimer chaque message, j'ai pensé utiliser une boucle, avec les
commandes seq
, wc
, head
,
tail
et cut
pour extraire les paramètres
de la liste émise par frozlist
:
for i in $(seq 1 $(wc -l xmail.frozlist |cut -f 1 -d\ )); do CtrlClnt -s 127.0.0.1 -u admin -p xxxx frozdel $(head -n $i xmail.frozlist|tail -1|cut -f 2,3) $(head -n $i xmail.frozlist|tail -1|cut -f 1) ;done
.
Mais XMail semble se mélanger les pinceaux en recevant les paramètres
avec la construction $(cmd) ; il n'émet pas d'erreur,
mais ne fait rien ! J'ai donc dû passer par un script shell construit avec :
for i in $(seq 1 $(wc -l xmail.frozlist |cut -f 1 -d\ )); do echo CtrlClnt -s 127.0.0.1 -u admin -p xxxx frozdel $(head -n $i xmail.frozlist|tail -1|cut -f 2,3) $(head -n $i xmail.frozlist|tail -1|cut -f 1) >>frozdel.sh;done
.
C'est la première fois qu'une chose du genre m'arrive sur Unix.
Peut-être est-ce dû au fait que XMail est très windowsiens,
dans les bons et les mauvais côtés.
© 2009 Marc Mongenet
Ce document est disponible selon les termes de la
Creative Commons Attribution 2.5 License.
Dernière mise à jour et
validation le 31 décembre 2017.