Aller au contenu | Aller au menu | Aller à la recherche


Supprimer certains mails en attente dans la queue liste de Postfix

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

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet