Email delivery delays happen when messages take minutes, hours, or even days to arrive instead of the usual few seconds. While occasional delays can be caused by the recipient's server, persistent delays almost always point to a configuration issue on your end.
This guide covers the most common causes of delayed email delivery and how to fix each one.
Quick Fix Checklist
- ✅ Check the mail queue for stuck messages:
exim -bpc - ✅ Review server load:
uptimeandtop - ✅ Check for greylisting on the receiving server
- ✅ Verify DNS resolution is fast:
dig MX gmail.com - ✅ Ensure outbound port 25 is not throttled
- ✅ Check for rate limiting by your hosting provider
- ✅ Review Exim retry configuration
Common Causes of Email Delays
1. Greylisting
Greylisting is an anti-spam technique where the receiving server temporarily rejects emails from unknown senders with a "try again later" response (4xx code). Your server then retries after a delay.
# Greylisting log example in Exim:
# 2026-05-05 10:30:00 H=smtp.recipient.com: 451 Greylisted, try again in 5 minutes
# This is NORMAL behavior — Exim will retry automatically
# First delivery attempt: delayed by 5-30 minutes
# Subsequent emails to same recipient: instant
2. Mail Queue Congestion
A large mail queue means your server is struggling to send emails fast enough:
# Check queue size
exim -bpc
# If queue > 1000 messages, you have congestion
# View the queue
exim -bp | head -30
# Force delivery of all queued messages
exim -qff
# Check for frozen messages (permanently stuck)
exiqgrep -z -c
3. Server Overload
High CPU or RAM usage slows down the mail service:
# Check server load
uptime
# Load should be below your CPU count
# Check Exim process count
ps aux | grep exim | wc -l
# Check if Exim is running
systemctl status exim
4. Slow DNS Resolution
If your server can't resolve DNS quickly, every email takes longer to send:
# Test DNS resolution speed
time dig MX gmail.com +short
# Should complete in under 100ms
# Check DNS resolver
cat /etc/resolv.conf
# Use fast resolvers (Google or Cloudflare)
echo "nameserver 1.1.1.1" > /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
5. Rate Limiting / Throttling
Many hosting providers and email services limit how fast you can send:
- cPanel default: 500 emails/hour per account
- Some VPS providers throttle port 25 by default
- Receiving servers may throttle high-volume senders
Step-by-Step Fix
Step 1: Diagnose the Delay
Check email headers to see where the delay occurred:
# In Gmail: Open email > ⋮ > Show Original
# Look for "Received:" headers with timestamps
# The gap between timestamps shows where delay happened
# Example:
# Received: from server1 at 10:00:00
# Received: by gmail at 10:00:03 ← 3 seconds (normal)
# vs
# Received: from server1 at 10:00:00
# Received: by gmail at 10:45:00 ← 45 minutes (delayed!)
Step 2: Fix Mail Queue
# Flush the entire queue
exim -qff
# Delete all frozen messages
exiqgrep -z -i | xargs exim -Mrm
# Delete old messages (older than 24 hours)
exiqgrep -o 86400 -i | xargs exim -Mrm
# Restart Exim
systemctl restart exim
Step 3: Optimize Exim Configuration
# Increase max parallel deliveries in WHM:
# Exim Configuration Manager > Advanced Editor
# Key settings:
# queue_only_load = 15 (only queue when load > 15)
# smtp_accept_max = 50 (max concurrent SMTP connections)
# remote_max_parallel = 10 (max parallel remote deliveries)
# Rebuild config after changes:
/scripts/buildeximconf && systemctl restart exim
Step 4: Fix DNS Speed
# Install local DNS cache (recommended for mail servers)
apt install unbound -y
systemctl enable unbound
systemctl start unbound
# Point resolver to local cache
echo "nameserver 127.0.0.1" > /etc/resolv.conf
Common Mistakes
- Ignoring greylisting: First-time delays of 5-30 minutes are normal with greylisting. Subsequent emails to the same server are instant.
- Too many concurrent connections: Sending too many parallel connections to one server can trigger rate limiting
- Slow DNS: Using distant or unreliable DNS resolvers adds latency to every email
- Not monitoring queue: A growing queue is an early warning sign — set up alerts
- Large attachments: Emails with large attachments take longer to transmit and process
🚀 Need Help With Email Deliverability?
QIW Host can configure SPF, DKIM, DMARC, PTR and SMTP correctly on your server — so your emails land in the inbox, not the spam folder.
Get Reliable Hosting →Frequently Asked Questions
Is a 5-minute email delay normal?
It depends. If it's a first-time email to a new recipient server, a 5-minute delay is likely greylisting and is perfectly normal. If all emails are consistently delayed by 5+ minutes, investigate your mail queue and server load.
How do I check the Exim mail queue in WHM?
In WHM, go to Email → Mail Queue Manager. This shows all queued messages with their status, sender, recipient, and reason for delay. Via command line: exim -bp lists all queued messages.
Can DNS affect email delivery speed?
Absolutely. Every outgoing email requires DNS lookups (MX records, SPF verification). Slow DNS can add seconds to each email. Install a local DNS cache like Unbound for instant resolution.
Why are emails delayed only to specific recipients?
If delays only happen to specific domains, the recipient's server is likely greylisting, rate-limiting, or experiencing issues. Check your Exim logs for the specific error code from that server.