SMTP
"SMTP Error 447" is really enhanced status code 4.4.7 — message delivery time expired. Learn what 4.4.7 means in Exchange/Microsoft 365 NDRs and how to fix it.
Updated Jul 1, 2026
The short answer
"SMTP Error 447" is not a real 3-digit SMTP reply code — it's the enhanced status code 4.4.7 ("Delivery time expired," RFC 3463) with the dots dropped, usually seen in Microsoft Exchange/Microsoft 365 NDRs like "550 4.4.7 Queue.Expired; message expired." It means your server retried delivery for hours (Microsoft 365 retries for about 24 hours) but never succeeded. Fix the underlying transient failure: recipient MX/DNS, SPF alignment, connector config, or a backed-up/throttled queue.
Not as a raw reply code. The SMTP standard (RFC 5321) defines three-digit reply codes, and 447 is not one of them — the 4xx transient codes RFC 5321 itself defines are 421, 450, 451, 452, and 455 (454 is a separate SMTP AUTH extension code from RFC 4954). The string people read as "447" is almost always the enhanced status code 4.4.7 with the dots removed.
Enhanced status codes (RFC 3463) have the form class.subject.detail. Here:
4 = persistent transient failure.4 = "Network and Routing Status" (a delivery/routing problem).7 = "Delivery time expired"So when you see something like 400 4.4.7 message delayed or 550 4.4.7 Queue.Expired; message expired, the meaningful part is the 4.4.7, not "447."
Per RFC 3463 §3.5, X.4.7 ("Delivery time expired") means:
"The message was considered too old by the rejecting system, either because it remained on that host too long or because the time-to-live value specified by the sender of the message was exceeded. If possible, the code for the actual problem found when delivery was attempted should be returned rather than this code."
In plain terms: your sending server kept retrying delivery because each attempt hit a temporary failure, and eventually the message sat in the queue past its expiration limit and was dropped. Microsoft 365 / Exchange Online, for example, retries delivery for about 24 hours before generating the 550 4.4.7 NDR.
Note: This is not a recipient-count limit. Hitting a server's max-recipients-per-message cap returns a different response (commonly
452 4.5.3 Too many recipientsper RFC 3463). Don't troubleshoot 4.4.7 by batching recipients — that won't address an expired-queue/routing failure.
Because 4.4.7 is the symptom of an underlying transient failure that never cleared, fix the root cause:
4xx throttling) is usually quoted alongside the 4.4.7. RFC 3463 itself says the original error should be preferred when available.nslookup -type=mx recipientdomain.com (or dig MX recipientdomain.com).If you send transactional or notification email through a provider (such as Courier routing to SendGrid, Amazon SES, Mailgun, or Microsoft 365), a 4.4.7 surfaces as a delayed/expired delivery event. Check the provider's message logs for the original transient error, verify the recipient domain resolves, and confirm your authentication (SPF/DKIM/DMARC) is aligned so downstream servers stop deferring your mail.
References
FAQ
No. RFC 5321 does not define a 447 reply code; the 4xx transient codes it defines are 421, 450, 451, 452 and 455 (454 is a separate SMTP AUTH extension code from RFC 4954). "447" is the enhanced status code 4.4.7 (RFC 3463) — "Delivery time expired" — written without the dots, typically inside an Exchange or Microsoft 365 NDR such as "550 4.4.7 Queue.Expired."
One API, every provider
Courier connects to your email, SMS, and push providers, handles retries and failover, and surfaces delivery errors in plain language.
Reply-code definitions per RFC 3463 §3.5 (X.4.7). Last reviewed Jul 1, 2026. Courier is not affiliated with third-party providers; error behavior may vary by implementation.
© 2026 Courier. All rights reserved.