Too many mails in Postfix deferred queue can make your server slow.
But it’s quite easy to clear this deferred queue and make the mail server working again.
At Bobcares, we get many requests related to the Postfix mail queue, as a part of our Server Management Services.
Today, let’s have a look at the causes for Postfix deferred queue and how our Support Engineers fix it.
What is the deferred queue in Postfix?
Postfix is one of the popular Mail Transfer Agents. It manages routing and mail delivery on the server.
But what happens to the undelivered mails?
The undelivered mails are better known as deferred mails. Usually, Postfix lists these mails in the deferred queue.
So, the reasons for deferred mails in a server are:
- Invalid recipient address
- Greylisting by spam filters
- Recipient server errors
Hence, it’s always important to clear this mail queue frequently. So, let’s see how we do it.
How we clear the deferred queue?
Even though the deferred queue creates trouble in the server, it’s easy to clear this queue. Initially, our Support Engineers list the queue using the commands,
mailq
or
postqueue -p
Sometimes, there will be a large number of mails in the queue. The postfix command to view the mails in tabular form is,
qshape deferred
It gives the output as:
Here, we analyze the emails and the reason for the mails to be in the deferred queue. Then, to clear this queue we use the command,
postsuper -d ALL deferred
Hence we ensure to keep the deferred queue empty.
Deferred queue errors
Our Support Engineers with expertise in Server Administration often see various email errors. Let’s see a few deferred queue errors our customers got and their fixes.
1. Resending deferred mails fails
Recently, our customer had an error with deferred mails. The server was not trying to resend the deferred mails. Firstly, our Support Engineers checked the log.
It specified the reason as sender IP greylisted. However, resending was not happening. Therefore, we checked the Postfix configuration using the command,
postconf -n
This lists important configuration. But, there was an error with the minimal and maximal backoff time. Hence, we changed those as,
minimal_backoff_time=300s
maximal_backoff_time=4000s
Later, we resend the mails in the queue. For this, we use either of the commands,
postsuper -r ALL
or
postqueue -f
Similarly, to resend a specific mail, the command is,
postqueue -i <ID>
Here ID is the Mail ID in the queue.
2. Deferred mail stuck for too long
In another case, the deferred mail was stuck in the queue for long without resending. This happened as the mail queue lifetime was set as 5 days. So our Support Engineers changed it to 1 day.
postconf -e 'maximal_queue_lifetime = 1d'
After adding this parameter to the config file, mail started working.
[Need assistance in fixing Postfix errors? – We’ll fix it for you.]
Conclusion
In short, the Postfix deferred queue contains emails stuck without sending. Usually, this can be due to invalid recipient address, greylisting by spam filters or recipient server error. So, today we saw how our Support Engineers fix the related errors.
Nice article, helped me understand my queue problem thanks!
Well done for the tips especially the;
postconf -e ‘maximal_queue_lifetime = 1d’
i had my queue stuck too long