BillionMail emails stuck in the send queue: read the delay reason and fix it
When BillionMail can't deliver an email right away, it doesn't give up. It keeps the message in a queue and tries again later. A few messages there is normal. A queue that keeps growing means something is wrong, and the queue tells you exactly what, if you know how to read it.
Where to find the queue
Open Settings > Send Queue. At the top you'll find three buttons and a table:
![[Image: attachment.php?aid=424]](https://adminsforum.com/attachment.php?aid=424)
What the delay reasons mean
"Connection timed out" (to port 25)
Your server can't reach other mail servers. Almost always your VPS provider blocks port 25. See BillionMail not sending emails? How to check if port 25 is blocked.
"Host or domain name not found"
The recipient's domain doesn't exist or has no MX record. Usually a typo like. Remove those addresses from your list. If it happens for every domain, your server's DNS resolver is broken: test with .
"421 ... try again later", "4.7.0 ... temporarily deferred", "rate limited"
The receiving server (often Gmail, Outlook or Yahoo) is slowing you down. This happens with new IPs and sudden volume. It's a temporary error; BillionMail retries automatically. Send smaller batches, keep IP Warmup on in your tasks, and grow volume over a few weeks.
"550 ... blocked", "listed at Spamhaus", "poor reputation"
A permanent rejection. Your IP or domain is on a blacklist, or the receiver doesn't trust it. Check your IP on a blacklist checker, fix the cause, then follow the list's delisting steps. Retrying won't help until then.
"550 5.7.x ... SPF / DKIM / DMARC / unauthenticated"
Your authentication fails. Check Domain > DNS Records and our guide BillionMail DKIM fails even though the DNS record exists.
"550 user unknown", "mailbox unavailable", "mailbox full"
The address doesn't exist or can't receive mail. Remove it from your list; repeated bounces hurt your reputation.
Working with the queue from the command line
First, find your BillionMail folder and containers. Most commands below run from the BillionMail folder:The second command lists the containers, with names like . Where a command says , or , use your real container name.
See the queue with full reasons:
Retry everything now (after you fixed the cause):
Delete one message (the ID is the first column of ):
Delete all deferred messages at once (careful, there's no undo):
Read the mail log for more detail. BillionMail keeps it in its folder:
How long does BillionMail keep retrying?
BillionMail uses Postfix for sending. By default Postfix keeps retrying deferred mail for up to 5 days, with growing gaps between tries, then returns it as undeliverable. So a message that sits in the queue for an hour isn't lost; it's waiting.
Before you press Quick Clear
Clearing the queue hides the symptom, not the cause. Read the delay reason, fix the problem, then retry with. Only clear messages you really don't want delivered, for example a campaign sent to the wrong group.
Stuck? Post the delay reason (hide the recipient address) in this section.
Sources: Postfix: postqueue · Postfix: postsuper · Postfix: maximal_queue_lifetime
More BillionMail troubleshooting
Applies to BillionMail 4.9 installed through aaPanel or the install script, October 2026.
When BillionMail can't deliver an email right away, it doesn't give up. It keeps the message in a queue and tries again later. A few messages there is normal. A queue that keeps growing means something is wrong, and the queue tells you exactly what, if you know how to read it.
Where to find the queue
Open Settings > Send Queue. At the top you'll find three buttons and a table:
- Refresh Queue reloads the list.
- Quick Clear deletes the queued messages. Use it only when you're sure you don't want them sent.
- Queue Parameter Configuration lets you adjust how the queue behaves. The defaults are fine for most people.
- The Delay Reason column is the important one.
What the delay reasons mean
"Connection timed out" (to port 25)
Your server can't reach other mail servers. Almost always your VPS provider blocks port 25. See BillionMail not sending emails? How to check if port 25 is blocked.
"Host or domain name not found"
The recipient's domain doesn't exist or has no MX record. Usually a typo like
Code:
gmial.comCode:
dig +short MX gmail.com"421 ... try again later", "4.7.0 ... temporarily deferred", "rate limited"
The receiving server (often Gmail, Outlook or Yahoo) is slowing you down. This happens with new IPs and sudden volume. It's a temporary error; BillionMail retries automatically. Send smaller batches, keep IP Warmup on in your tasks, and grow volume over a few weeks.
"550 ... blocked", "listed at Spamhaus", "poor reputation"
A permanent rejection. Your IP or domain is on a blacklist, or the receiver doesn't trust it. Check your IP on a blacklist checker, fix the cause, then follow the list's delisting steps. Retrying won't help until then.
"550 5.7.x ... SPF / DKIM / DMARC / unauthenticated"
Your authentication fails. Check Domain > DNS Records and our guide BillionMail DKIM fails even though the DNS record exists.
"550 user unknown", "mailbox unavailable", "mailbox full"
The address doesn't exist or can't receive mail. Remove it from your list; repeated bounces hurt your reputation.
Working with the queue from the command line
First, find your BillionMail folder and containers. Most commands below run from the BillionMail folder:
- aaPanel Docker install: (the last part is random)Code:
/www/dk_project/dk_app/billionmail/billionmail_XXXX
- Script install: usually Code:
/opt/BillionMail
Code:
ls -d /www/dk_project/dk_app/billionmail/billionmail_* /opt/BillionMail 2>/dev/null
docker ps --format "{{.Names}}" | grep -i billionmailCode:
billionmail_xxxx-postfix-billionmail-1Code:
POSTFIXCode:
DOVECOTCode:
WEBMAILSee the queue with full reasons:
Code:
docker exec POSTFIX postqueue -p | tail -40Code:
docker exec POSTFIX postqueue -fCode:
postqueue -pCode:
docker exec POSTFIX postsuper -d QUEUE_IDCode:
docker exec POSTFIX postsuper -d ALL deferredRead the mail log for more detail. BillionMail keeps it in its folder:
Code:
tail -n 100 logs/postfix/mail.log
grep -i "status=deferred" logs/postfix/mail.log | tail -20How long does BillionMail keep retrying?
BillionMail uses Postfix for sending. By default Postfix keeps retrying deferred mail for up to 5 days, with growing gaps between tries, then returns it as undeliverable. So a message that sits in the queue for an hour isn't lost; it's waiting.
Before you press Quick Clear
Clearing the queue hides the symptom, not the cause. Read the delay reason, fix the problem, then retry with
Code:
postqueue -fStuck? Post the delay reason (hide the recipient address) in this section.
Sources: Postfix: postqueue · Postfix: postsuper · Postfix: maximal_queue_lifetime
More BillionMail troubleshooting
- Port 25 blocked: emails not sending
- SSL certificate won't apply
- DKIM fails although the record exists
- Can't open the dashboard
- Webmail (Roundcube) problems
- Emails going to spam
- Update safely and roll back
Applies to BillionMail 4.9 installed through aaPanel or the install script, October 2026.

