Supprimer certains mails en attente dans la queue liste de Postfix
Par PlaceOweb le lundi, juillet 9 2007, 00:11 - Système - Lien permanent
Pour effacer un mail en attente de distribution sous Postfix, il faut utiliser :
postsuper -d queue_id (delete)
Par exemple pour tous les effacer vous utiliserez :
postsuper -d ALL
Mais il n'y a pas d'option pour supprimer plusieurs messages filtrés en batch.
Consultez a votre liste d'attente avec :
postqueue -p
qui vous listera quelque chose comme suit :
702472540B2 3744 Tue Jan 8 18:47:51 expediteur@du.domaine.com
D'où le petit script suivant en shell : emptymailq.sh
#!/bin/sh todel="du.domaine.com" nbmsg=0 while test 1 do liste=`postqueue -p | grep ^[0-9A-Z] | grep -v empty | grep $todel | cut -d \* -f1 | head -1` if [ -n "$liste" ]; then echo Message a supprimer $liste listemsg=`echo $liste | cut -c-11` postsuper -d $listemsg else echo Nombre de message supprime $nbmsg exit 0 fi let nbmsg="$nbmsg+1" done echo Nombre de message supprime $nbmsg
Vous pouvez aussi lister et supprimer tous les fichiers du dossier active et incoming contenants "hinet.net"
monserveur:/var/spool/postfix/incoming # find . -type f -print | xargs grep hinet.net | awk '{print $3 }' | ls -al monserveur:/var/spool/postfix/incoming # find . -type f -print | xargs grep hinet.net | awk '{print $3 }' | xargs rm