Solution 1 :
Avec une installation typique de postfix, l'e-mail sera dans /var/spool/postfix. Il y a plusieurs files d'attente. Vous souhaitez arrêter postfix afin de pouvoir utiliser postsuper en toute sécurité pour supprimer les e-mails. Ce court script supprimera tous les e-mails correspondant à une chaîne particulière. Dans notre cas, nous devions trouver des milliers d'e-mails qui avaient tous la même ligne d'objet.
Dans ce cas, les e-mails ont tous été différés, car notre service de repostage les avait rejetés car nous étions au-dessus de la limite.
cd /var/spool/postfix/deferred
grep -r -i -l "This was the subject line" ./ | cut -d/ -f3 | postsuper -d -
Quelques notes clés à ce sujet :
- grep -l a renvoyé le nom de fichier pour les correspondances, qui est l'ID de file d'attente du message correspondant
- les messages étaient tous dans des sous-répertoires différents, donc la coupe consistait à supprimer le chemin du devant. Assurez-vous de tester votre chemin de retour pour vous assurer que vous n'obtenez que le nom de la file d'attente
- postsuper -d - indique à postsuper de supprimer les messages reçus de stdin.
J'espère que cela aidera les personnes qui trouvent cela et qui recherchent des instructions plus spécifiques.
Solution 2 :
Postfix n'a pas d'utilitaire comme exigrep, vous devrez donc grep les fichiers de file d'attente pour le sujet, puis diriger l'ID de file d'attente vers postsuper pour les supprimer