<domain>
The conversation has reached the message body. The node sends it in pieces, and this timeout measures the wait for sending one piece — not the whole message and not the receiver’s reply.
It fires where the receiver has stopped reading the incoming stream: the buffer on its side is full, the receive window has closed, the data has nowhere to go. For the node this looks like a hung write to the network.
The lower bound is set by the standard. The manual says plainly: for full compliance with RFC 2821 the timeout must be at least three minutes — exactly what the default is.
Three minutes is a floor, not a recommendation. Less means going outside the mail standard, which the manual warns about separately.
Upwards — for heavy messages. A mailing with attachments to a slow receiver may hit this timeout honestly; five minutes are appropriate there.
Firing is about the receiver, not the message. It means the receiver has stopped taking data from the network, not that the message is too large.
# a heavy mailing to a slow receiver — we give some headroom <domain slow.example.com> data-send-timeout 5m</domain>
what people get wrong and how it ends2 mistakes▶
§ 3.3.10.76
our experience
2 relations
pmta show settings slow.example.com/vmta1 | grep -i data-send-timeout pmta show settings slow.example.com/vmta1 | grep -i log-transfer-failures
3 articles
◇How the policy for a receiver is assembledSettings are assembled from the most general pattern to the most precise; the order of blocks in the file means nothing.◇Backoff mode — the queue's second personalityA queue that a receiver has started refusing switches to a parallel set of limits, retries and routes — ten directives that act only in this mode.◇Reputation monitoring inside the nodeThe engine itself watches the receiving servers’ replies and changes the queue mode on a pattern match — a reaction within the connection, not through telemetry.