From time to time your mail queue may get filled up. This may be due to network problems or misconfiguration. For instance, if you botch (typo) the relayhost parameter, the mail will be undeliverable.
The first thing to do is fix the problem, meaning get the network back online, or fix the configuration. Issuing this command will tell postfix to try and deliver the mail from the queue.
postfix flush
However if you discover (using the mailq command) that the deferred mail is useless anyway, it may be desirable to just purge it from the queue without delivering, like so…
postsuper -d ALL deferred
Specific messages can be removed based on their message ID, which is the first thing shown for each message shown in the mailq output.
postsuper -d 0C0FF240F2
Many MAILER-DAEMON mail messages are moved to the deferred queue, which you can check by:
qshape -s deferred | head
To delete these messages use:
mailq | grep MAILER-DAEMON | awk '{print $1}' | postsuper -d -