Inspecting Postfix’s email queue
list of queued mail
Including deferred mail and pending for delivery.
command:
mailq
The command 'postqueue -p' does the same thing as 'mailq'
queue processing
process entire queue now
postqueue -f
The command 'postqueue -f' does the same thing as 'postfix flush'
Schedule immediate delivery of all mail that is queued for the domain foo.com
postqueue -s foo.com
delete / clear the queue now
postsuper -d ALL
postsuper -d messageid
selective delete from queue
postsuper -d ALL deferred
inspecting queue
You can view the specific message in queue if you have the id
postcat -vq F276B2C0EA8 > themessage.txt
Replace 'F276B2C0EA8' with the postfix id of your message.
qshape prints Postfix queue domain and age distribution information.
qshape active
shows the number of emails being sent to each domain and how long they have been in the active queue
qshape deferred
shows the number of emails in the deferred queue for each domain and how long they have been there
Your installation may not have qshape compiled by default. qshape does not seem to be included with the Redhat / Fedora / Trustix / CentOS postfix packages. It needs to be added. For those distributions 'yum install postfix-perl-scripts'
Send Mail Test
check if postfix can send emails
echo "Hello this is a test." | mail -s "Testing" admin@foo.com
follow the message by watching the log - the -f follow tells tail to actively display log activity. Be advised there is a timeout in which tail will fail to follow.
tail -f /var/log/mail.log
Determine Installed Version
If postfix is running and the main.cf specifies
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
you can
telnet localhost 25
If postfix is not running you can check by the package.
There is no version switch on the postfix binary. Here are some ways you can determine what version of postfix is installed:
Redhat/Fedora/CentOS:
rpm -qa postfix
Debian/Ubuntu:
dpkg -s postfix