The mail queue
Post the server has accepted but not yet delivered sits in the queue. Usually for a few seconds and you never notice. Sometimes something stays: the receiving server will not take it, a customer's script handed in four thousand messages at
Written for: Administrator
Post the server has accepted but not yet delivered sits in the queue. Usually for a few seconds and you never notice. Sometimes something stays: the receiving server will not take it, a customer's script handed in four thousand messages at once, or there is an address in play that does not exist. This screen shows what is waiting and why, and gives you five buttons to do something about it.
You find it in two places:
- Insights → Mail queue — every server side by side, with how much is waiting on each and how long the oldest message has been there.
- Servers → a server → Mail queue — the messages themselves, with the buttons.
The second tab appears only on a server with the mail role, and only for somebody who may operate that server. That is not arbitrary: one message in the queue can hold post for several customers at once, so whoever touches it touches other people's mail.
What you do and do not see
You see the envelope only: who wrote to whom, when it arrived, how big it is, which queue it sits in, and what the receiving server last said about it.
You never see the subject and never the content. That is the same rule as in Where your email went, for the same reason: a queue with subjects in it would be a readable archive of other people's post. So the server does not read the messages either — it reads the envelope.
The four queues, in order
The counters at the top are in the order a message travels, and where it piles up tells you what is wrong. Press a counter to show only that queue; press it again to drop the filter.
| Queue | What it means | Whose turn it is |
|---|---|---|
| Arrived | just accepted, waiting for the queue manager | nobody — this moves on its own |
| Being tried | the server is delivering it right now | ours |
| Deferred | the other end would not take it | the receiving server |
| Held | somebody parked it | a person, usually you |
There is a fifth, Not picked up. It should always be empty; if anything is in it something is wrong with the server itself, and the counter appears.
Beside the title is the age of the oldest message. That is the number that matters. Two thousand messages that drain within a minute are not a problem; three messages that have been there since Tuesday are. The badge turns amber after a quarter of an hour and red after four hours — past that a message is on its way to the five days after which Postfix returns it to the sender for good.
Searching
One search box, and it looks at both sides of the envelope: type a sender, a recipient or a queue id and you get everything that matches. Part of one is enough — @customer.com shows everything from and to that domain.
The five buttons
Tick the messages you mean; a bar with the five verbs appears under the counters. Behind each one is exactly one instruction to the mail server.
| Button | What happens | When you use it |
|---|---|---|
| Deliver now | the server tries again straight away | the other end is reachable again and you would rather not wait for the next round |
| Hold | the message is parked and does not expire meanwhile | somebody has to look at it first, or a script has run away |
| Release | a held message goes back in the queue | the investigation is over |
| Delete | the message is gone and the sender hears nothing | post nobody should receive — in practice a spam run from a compromised account |
| Return to sender | the server gives up and sends a failure report back | it will never arrive and the sender deserves to know |
Not every button reaches every message. A message the server is delivering right now (Being tried) cannot be returned to its sender — the mail server does not allow it, and you get the sentence saying the message is not in a queue that action can reach. Wait until it is back on Deferred, or hold it first.
A held message cannot be "delivered now". The server does not attempt it while it is parked, so that button would do nothing — the panel does not offer it and says why. Release the message first.
Delete and return to sender ask first. Both are final, and the difference between them is whether the sender hears about it. Choose return to sender when a person is waiting for an answer; choose delete when the answer would itself be the problem.
Top right, behind the three-dot button, the same five verbs appear again — this time for the whole queue instead of your selection. That variant always asks, and says in as many words that it is about every customer on that server.
For Deliver now and Release that variant always means the whole queue and never one part of it: the mail server has no "flush only the deferred queue", and releasing is about held post by definition.
An action on several messages becomes one task that walks the list calmly, with a pause between messages. That is deliberate: releasing ten thousand messages at once is a flood aimed at one recipient, and that is exactly how a server gets itself blocked. The progress appears under the counters and you can follow the task to the end.
If a message was delivered in the meantime, the server says so about that one message and carries on with the rest.
One message in detail
Click a row and a panel slides open: the envelope, each recipient separately, and per recipient the sentence the other end sent back. That last one is usually the answer straight away — Connection timed out is a server that does not pick up, User unknown is an address that does not exist, over quota is a full mailbox at the other end.
At the bottom is a button to that message's delivery log, for the story so far.
From the command line
Everything above works on the server itself, with the same words.
corectl mail queue list --queue deferredqueue: 14 message(s) — active 1, deferred 12, hold 1; oldest 1h12m
QUEUE ID QUEUE ARRIVED SIZE FROM TO
3C1F2E4A9B1 deferred 2026-08-26 09:14 4.1 KB shop@test200.nl nobody@unreachable.invalidcorectl mail queue hold 3C1F2E4A9B1
corectl mail queue release 3C1F2E4A9B1
corectl mail queue deliver 3C1F2E4A9B1
corectl mail queue bounce 3C1F2E4A9B1
corectl mail queue delete --all --queue deferredWho may do this
Only an administrator with that server in scope. A customer and a reseller do not see this screen and cannot call the operations either — not through the panel and not through the API. They do see their own delivery log, because that is only about their own domains.
See also
- Where your email went — the delivery log: what happened to a message.
- Keeping spam out — the filter, and the sending limits that slow a runaway script down before it fills the queue.
- Reading the server advisor — where a full queue reports itself before anybody looks here.