How to Flush/Clear/Delete Postfix Mail Queue

by Sandy

This is short tutorial for clearing the mail queue from command line. Postfix is the mail server which is used to send mails, time to time there will increase in mail queue which contains failed email in order to check and clear the mail queue just run this following command from terminal/ssh.

To check mail queue:

mailq

To remove all mail from the queue:

postsuper -d ALL

To remove all mails in the deferred queue:

postsuper -d ALL deferred

Also you can use this script to delete mail queue which contain certain keyword or email id :

cd /root
touch mailq-del.pl
chmod 775 mailq-del.pl
nano mailq-del.pl

and add this below code in mailq-del.pl and save it :

#!/usr/bin/perl
 
$REGEXP = shift || die "no email-adress given (regexp-style, e.g. bl.*\@gmail.com)!";
 
@data = qx</usr/sbin/postqueue -p>;
for (@data) {
  if (/^(\w+)(\*|\!)?\s/) {
     $queue_id = $1;
  }
  if($queue_id) {
    if (/$REGEXP/i) {
      $Q{$queue_id} = 1;
      $queue_id = "";
    }
  }
}
 
#open(POSTSUPER,"|cat") || die "couldn't open postsuper" ;
open(POSTSUPER,"|postsuper -d -") || die "couldn't open postsuper" ;
 
foreach (keys %Q) {
  print POSTSUPER "$_\n";
};
close(POSTSUPER);

example usage of script :

cd /root
./mailq-del.pl example@gmail.com
or
./mailq-del.pl keyword

If this post helps you in any way please consider a donation

Donate with PayPal :

md-donate

Donate with Paytm :

md-donate

You may also like

2
Leave a Reply

avatar
1 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
SandyJack Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
Jack
Guest
Jack

Why vestacp is faster than CWP for deliver emails?
I also tested in fresh install.
Usually, CWP delivers emails after 30-32 seconds but vestacp delivers emails after 1-3 seconds.