"SMTP Error 547" isn't a real reply code — it's the RFC 3463 status 5.4.7 "Delivery time expired." Here's what causes the timeout bounce and how to fix it.
Updated Jul 1, 2026
The short answer
"SMTP Error 547" is not a real SMTP reply code — RFC 5321 has no 547. It's almost always a garbled rendering of the RFC 3463 enhanced status code 5.4.7 (or 4.4.7), "Delivery time expired": your sending mail server retried delivery for days, never reached the recipient's server, and bounced the message. Fix it by checking the recipient domain's MX/DNS and your sending server's queue and retry settings.
No — and that distinction is the most useful thing to know. There is no reply code 547 in RFC 5321, the SMTP specification. A basic SMTP reply is a three-digit number whose second digit denotes a functional category (x0z syntax, x1z information, x2z connections, x3z/x4z unspecified, x5z mail system). RFC 5321 itself defines only 500–504 and 550–555 as 5xx codes. Across the wider set of SMTP RFCs, other 5xx codes exist too — 521 and 556 come from RFC 7504, and 530/534/535/538 are SMTP AUTH codes from RFC 4954 — but 547 is not among them in any of these.
What "547" almost always is: a mangled rendering of the enhanced mail system status code 5.4.7 (or its transient sibling 4.4.7) defined in RFC 3463. You'll most often see it in a bounce as 554 5.4.7 or 550 4.4.7. The leading three-digit reply code (554/550) and the dotted enhanced code (5.4.7) get collapsed into "547." So if you're chasing a literal 547, look at the full bounce message instead.
Per RFC 3463, X.4.7 is "Delivery time expired": "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."
In practice this is a sending-side queue timeout. Your MTA accepted the message, couldn't hand it off to the recipient's server, retried for its configured window, and finally gave up and bounced it:
4.4.7 — transient. Still retrying; the message has been delayed, not killed. No action may be needed yet.5.4.7 / 554 5.4.7 — permanent. The retry window expired and the message was returned as undeliverable.This is distinct from a per-recipient rejection (550 "no such user") — the recipient address may be perfectly valid; the problem is that the connection to their server never succeeded in time. Note that vendors don't always keep the leading digit consistent between the base reply code and the enhanced code — Microsoft, for example, reports a permanent-looking 550 base code together with the transient 4.4.7 enhanced code for a temporary delivery delay. When the two disagree, treat the enhanced code's leading digit (4 vs. 5) as the more reliable transient/permanent signal.
Work the delivery path from the recipient's DNS back to your own queue:
bash
dig +short MX recipient-domain.com
dig +short A mx-host-from-above.com
If MX lookups fail intermittently, fix your resolver/DNS before anything else (Cisco and Microsoft both list DNS/MX resolution as the first cause of 5.4.7/4.4.7).4xx) until your window expires all produce this bounce:
bash
nc -vz mx-host.com 25If you send through Courier, transient 4.4.7 delays are retried by the downstream provider automatically; a permanent 5.4.7 bounce surfaces in your message logs and indicates the destination was unreachable for the full retry window — investigate the recipient domain's DNS/MX and reachability first.
References
RFC 3463 — Enhanced Mail System Status Codes (X.4.7 Delivery time expired)
RFCRFC 5321 — Simple Mail Transfer Protocol (reply code structure)
RFCRFC 7504 — SMTP 521 and 556 Reply Codes
RFCRFC 4954 — SMTP Service Extension for Authentication (5xx AUTH codes)
WIKIList of SMTP server return codes — Wikipedia
DOCSMicrosoft Learn — Fix NDR error 550 4.4.7 in Exchange Online
DOCSBroadcom/Symantec — 554 5.4.7 exceeded max time without delivery
DOCSCisco Community — 5.4.7 Delivery expired (message too old)
FAQ
No. RFC 5321 defines only 500–504 and 550–555 as 5xx reply codes; other SMTP RFCs add a few more (521/556 from RFC 7504, 530/534/535/538 from RFC 4954), but none of them is 547. "547" is almost always a garbled form of the RFC 3463 enhanced status code 5.4.7 (or 4.4.7), "Delivery time expired," often seen in bounces as 554 5.4.7 or 550 4.4.7.
Both use RFC 3463's X.4.7 "Delivery time expired," but the class differs: 4.4.7 is transient (the message is still being retried after a delay), while 5.4.7 is permanent (the retry window expired and the message bounced as undeliverable).
5.4.7 is a delivery-time/queue timeout, not an address rejection. The sending server repeatedly failed to reach the recipient's mail server — usually due to DNS/MX resolution failure, an unreachable or overloaded destination, or firewall/greylisting — until the retry window 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); RFC 5321 §4.2.1 (reply code structure/theory), §4.2.3 (numeric code list). Last reviewed Jul 1, 2026. Courier is not affiliated with third-party providers; error behavior may vary by implementation.
© 2026 Courier. All rights reserved.