451 4.4.2 means the SMTP conversation broke while it was in progress. Something was negotiated
or sent, and then the connection went away before the transaction completed. The 4 says
transient - the message is still in your queue and will be retried - and the .4 subject says
network and routing, which is the single most useful fact in the reply: the fault is usually
between the two servers, not inside either one.
Exchange's version names the mechanism outright:
451 4.4.2 Connection dropped due to SocketError
Postfix logs its side of the same event as:
Oct 14 09:12:44 mx postfix/smtp[21184]: 4A1B2C3: to=<test@mailpilots.in>, relay=mx1.example.com[198.51.100.7]:25, delay=31, delays=0.1/0/30/0, dsn=4.4.2, status=deferred (lost connection with mx1.example.com[198.51.100.7] while sending end of data)
Read the delays= field. The format is before-queue / in-queue / connect-and-TLS / data transfer.
In that line, 30 seconds went into connection setup, which points at TLS negotiation rather than
at the message body.
What distinguishes 4.4.2 from its neighbours
| Code | Meaning | Where to look |
|---|---|---|
4.4.1 | No answer from host | The remote MX is down or unreachable. |
4.4.2 | Bad connection | The session opened and then broke. |
4.4.3 | Directory server failure | DNS or directory lookup failed. |
4.4.7 | Message expired in queue | Your retry timeout ran out - the *end* of a long run of 4.4.x. |
If you are seeing 4.4.7, the underlying problem was a 4.4.1 or 4.4.2 that never cleared.
The causes, in order
- TLS negotiation failure. The most common cause now that opportunistic TLS is near
universal. A remote server that has disabled TLS 1.0 and 1.1 while your MTA offers nothing
newer, a certificate chain the remote cannot verify under strict policies, or a cipher
mismatch, all present as a connection that opens and then dies.
- Idle or data timeout on a long `DATA` phase. Large messages over a slow path exceed the
remote server's data timeout. Postfix's log phrases this exactly: "while sending end of data".
- A firewall or NAT device dropping the session. Stateful firewalls expire long-lived
connections. SMTP inspection modules are worse: some rewrite or strip STARTTLS from the
capability list, which breaks the session in ways that look like a remote fault.
- Path MTU black hole. The handshake succeeds because the packets are small, then the first
full-size data packet is dropped by a device that also drops the ICMP fragmentation-needed
response. Small messages deliver, large ones fail - a very distinctive signature.
- Network congestion or a genuinely overloaded remote server. Real, usually brief, and
self-resolving. Worth ruling out by checking whether other destinations are fine.
- A broken MX host. A domain with several MX records where one host accepts connections and
then fails. Sending appears intermittent because retries land on different hosts.
Diagnosing it
Three commands, in this order:
$ dig MX example.com +short
10 mx1.example.com.
20 mx2.example.com.
$ openssl s_client -starttls smtp -connect mx1.example.com:25 -crlf
CONNECTED(00000003)
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
...
250 SMTPUTF8
$ swaks --to test@mailpilots.in --server mx1.example.com --tls \
--attach-type text/plain --attach /tmp/five-megabyte-fileThe first confirms where you should be connecting and whether there are several hosts. The second
proves whether TLS completes at all, and names the protocol version and cipher actually negotiated
- compare it against what your MTA permits. The third reproduces a large
DATAphase, which is
how you separate a TLS problem from a size or MTU problem: if the small test succeeds and the
large one fails, you are looking at cause two or four.
For Exchange, enable send connector protocol logging and read the SocketError entries; they
carry the stage at which the socket died.
The ordered fix
- Confirm the message is still queued. It is a
4xx. Nothing has bounced, and your only
deadline is the retry timeout.
- Test TLS to the destination MX explicitly. If TLS fails, nothing else matters. Check which
protocol versions and ciphers your MTA offers and whether the remote still accepts any of them.
- Test a large message. Success on small and failure on large means a timeout or an MTU
problem, not a certificate problem.
- Check MTU on the sending path if the large test fails. Lowering the interface MTU, or
enabling MSS clamping on the gateway, resolves the black-hole case.
- Disable SMTP inspection on intermediate firewalls. These modules predate ubiquitous TLS and
break more sessions than they protect.
- Raise the data timeout only after ruling out the above, and only if the destination is
genuinely slow.
What not to do
- Do not resend the message by hand. It is queued. Manual resending produces duplicates - the
original delivers on retry and your copy delivers too.
- Do not suppress the recipient. Nothing about the address was evaluated. A classifier that
matches 451 and marks a soft bounce against the contact is recording a network event as a
list-quality event.
- Do not count it against your sender reputation. No receiving provider formed a judgement;
the session never completed.
- Do not switch to port 465 for delivery to an MX. Server-to-server delivery is port 25. Port
465 is submission, and public MX hosts do not listen on it.
- Do not disable TLS to force delivery. It may work, which is worse: you have now downgraded
every message to that destination to plaintext to work around a cipher mismatch you could have
fixed.
MailPilot watches this at the mailbox level rather than the message level. Because it tracks
per-mailbox reputation daily and measures per-provider inbox placement through a seed-inbox
network, a run of transient connection failures to one destination reads as what it is - an
infrastructure problem on one route - rather than as a decline in the sending domain's standing.
Ready to reach the inbox every time?
Automated email warmup across real peer mailboxes. Live inbox placement monitoring. Free 7-day trial - no credit card required.
Start free trial