SMTP Error 447 - Delivery time expired — a misread of 4.4.7, not a real code. | Warmup Inbox
The short answer
SMTP 447 is not a real 3-digit reply code. It is the enhanced status 4.4.7 ("delivery time expired") with the dots dropped, usually seen in Exchange or Microsoft 365 NDRs like "550 4.4.7 Queue.Expired; message expired." Your server retried for hours (Microsoft 365 retries for about 24 hours) but never got through. Fix the underlying transient failure.
Quick fix
Fix the underlying transient failure: recipient MX/DNS, connectivity, or a backed-up queue.
4 - Temporary. Safe to retry. The message is not lost and most servers retry automatically.
What it means
RFC 5321 defines no 447 reply code. Its transient codes are 421, 450, 451, 452, and 455. What people read as "447" is the enhanced status 4.4.7 with the dots removed. Written out it is class.subject.detail: 4 (persistent transient), .4 (network and routing), .7 (delivery time expired). So "400 4.4.7 message delayed" or "550 4.4.7 Queue.Expired" carries its meaning in the 4.4.7, not the 447. It means your sending server kept retrying because each attempt hit a temporary failure, and the message eventually sat in the queue past its expiration and was dropped.
Common causes
Recipient MX or DNS problem
A missing, wrong, or unresolvable MX record means your server can never connect, so every attempt fails until the queue expires.Recipient server unavailable
If the remote host was offline, full, greylisting, or rate-limiting your IP, each attempt returns a transient error until the message ages out.Backed-up or throttled queue on your side
A stalled queue or Exchange back pressure (low disk or memory freezing outbound mail) can also let a message expire.
How to fix it
Read the full NDR or queue log
The real problem (DNS failure, connection timeout, recipient 4xx throttling) is usually quoted next to the 4.4.7. RFC 3463 says the original error should be preferred over this one when available.Verify the recipient MX and DNS
A missing or unresolvable MX means your server never connects.nslookup -type=mx recipientdomain.com dig MX recipientdomain.comCheck the recipient server availability
If it was offline, full, or rate-limiting you, every attempt returned a transient error until the queue expired. Retry once the remote host is healthy.For Microsoft 365 senders
Confirm your own MX record, ensure your SPF record lists all sending sources so receivers do not soft-reject, and test with the Microsoft Remote Connectivity Analyzer outbound SMTP test.On self-hosted Exchange
Check for a backed-up queue or back pressure (low disk or memory), restart the transport service, and review Queue Viewer. Lengthening the expiration timeout only masks the real failure, so fix the DNS and connectivity items first.
Paired code
A real bounce often shows both a 3-digit code and an enhanced code together. This one commonly pairs with:
Common questions
Is 447 a valid SMTP reply code?
No. RFC 5321 defines no 447. It is the enhanced status 4.4.7 ("delivery time expired") written without the dots, usually inside an Exchange or Microsoft 365 NDR.Does 447 mean I sent to too many recipients?
No. A recipient-count limit returns a different code (usually 452 4.5.3). Do not troubleshoot 4.4.7 by batching recipients.Why does Microsoft 365 take so long to report 4.4.7?
It retries delivery for about 24 hours before giving up, so the NDR arrives only after the queue expires.
Related codes
- 441 No answer from host — a misread of 4.4.1, or an AuthSMTP quota code.
- 450 Mailbox unavailable (temporary).
- 451 Requested action aborted — local error in processing.
- 449 Exchange routing error — non-standard, legacy Exchange only.
- X.4.7 Delivery time expired
Most rejections come back to sender reputation.
Blocklists, auth failures, and policy blocks are what warmup prevents. Warm up your domain so your mail is trusted before you hit send.