// how to fix
"4.4.7 Message expired" and "Delivery Status Notification (Delay)" ("451 4.4.0 DNS query failed"): causes and fixes
Your server tried to deliver for hours or days, then gave up. Why emails get delayed and expire, and how to find and fix the cause.
What it means
When an email cannot be delivered right away, the sending server keeps it in a queue and tries again regularly. While it waits, you may receive a warning titled "Delivery Status Notification (Delay)" or "Delivery delayed". If the problem lasts too long, the server gives up and sends a final bounce. This retry period is typically between one and five days, depending on the server. The messages usually look like these:
Delivery to the following recipient has been delayed: user@example.com Status: 4.4.7 550 4.4.7 QUEUE.Expired; message expired 451 4.4.0 DNS query failed
The code 4.4.7 means "delivery time expired". It is not the real cause. The real reason is the last error the server saw while retrying. Look for it in the bounce: it is often written under "Diagnostic code", "Remote server returned" or "Last error".
Why it happens
- The recipient's mail server is down or unreachable, so every attempt fails.
- DNS problems. The recipient domain has no MX record, its name servers do not answer, or your own server's DNS resolver is broken.
451 4.4.0 DNS query failed(a Microsoft 365 / Exchange wording) points here. - Outgoing port 25 is blocked on your network. Many internet, cloud and VPS providers block it by default, so your server cannot connect to anyone.
- Greylisting never passed. Some servers refuse the first attempt on purpose and accept a later one. If your server does not retry correctly, or retries from a different IP each time, it never gets through.
- Throttling. The receiver accepts only a few emails at a time from your IP (common with big providers when your reputation is low or volume suddenly rises), and answers with temporary
421or451codes. - A temporary block, for example a reputation deferral, that turned into a timeout.
How to check
- Read the last error in the bounce. A timeout points to the network or a firewall, a DNS error to DNS, a
421to throttling or reputation. - Scan the recipient domain at
/domain-scanner. If it shows no MX record, the problem is on their side. - Test your own sending. Send an email to the unique address on the home page (
/). If it does not arrive, your server probably cannot send out at all (port 25 blocked, DNS broken). If it arrives, the report shows your IP, reverse DNS, blacklists and authentication, which can explain throttling. - Check blocklists for your IP at
/blacklists. - On your own server, look at the queue and logs (in Postfix,
mailqand the mail log) for the exact error of each attempt.
How to fix it
- Recipient server or DNS down: nothing to fix on your side. Tell the recipient by another channel and resend later.
- Your DNS resolver: make sure your server can resolve names (test with
dig MX example.com). Use a reliable local resolver. - Port 25 blocked: ask your provider to open it, or send through a relay (smarthost) on port 587 with login.
- Greylisting: keep the default retry settings of your mail server. Send from one stable IP, not a pool that changes on every attempt.
- Throttling or reputation: send more slowly, spread large campaigns over time, authenticate with SPF, DKIM and DMARC, set a correct reverse DNS, and clean any blocklist listing.
- Resend the expired emails once the cause is fixed. Expired emails are not retried automatically.
Check that it is fixed
Send a new Delivmail test: it should arrive quickly and show a clean report. Check that your server's queue is emptying. Then resend the email to the address that expired and watch your logs for a 250 answer from the recipient server. If throttling was the cause, it can take a few days of steady, clean sending before deliveries are fast again.
Check that it is fixed
DNS changes can take from a few minutes to a few hours. Then send a new test email or scan your domain again.
Related guides
- No SPF record on your domainYour domain does not say which servers may send email for it. Add one TXT record and receivers can tell your real emails from fakes.
- SPF error: too many DNS lookups (permerror)SPF allows at most 10 DNS lookups. Above that, the whole record breaks and receivers treat it as invalid. Here is how to slim it down.
- Several SPF records on one domainA domain must have only one SPF record. With two or more, SPF breaks for every email. Merge them into a single line.
- SPF fails: the sending server is not authorizedYour domain has an SPF record, but the server that sent your email is not in it. Find which service sent the email and add it.
- No DKIM signature on your emailsDKIM adds a digital signature that proves an email really comes from your domain. Turn it on in your email provider and publish its key in DNS.