<domain>
The connection broke not before sending and not after, but in the middle of the message transfer — the headers and part of the body have gone out, and there is no acceptance confirmation yet. The node does not know whether the message got through: the mail protocol does not report it.
The vendor default false chooses delivery. The message stays in the queue and is retried until the bounce-after deadline. If the receiver actually accepted it, the recipient will see two copies — and sometimes a truncated first one.
true chooses no duplicates. The message is bounced after the very first broken transfer. There will be no duplicate — but there will be no message either if the break happened on our side and the receiver got nothing. The protocol has no third option.
For a mailing — false. Losing a message costs more than a second copy in the mailbox.
For mail with money or codes — true. A second invoice or a second one-time code is more dangerous than an undelivered message, and such mail is sent through a separate stream anyway.
Look at how often breaks happen, not only at the value. If transfers break regularly, the problem is not this line: check the network, transfer timeouts and intermediate equipment.
# a mailing: delivering matters more than avoiding a repeat <domain *> bounce-upon-transfer-failure false</domain> # invoices and codes: a second copy is more dangerous than an undelivered message <virtual-mta billing> <domain *> bounce-upon-transfer-failure true </domain> </virtual-mta>
what people get wrong and how it ends2 mistakes▶
§ 3.3.10.72
our experience
1 relation
pmta show settings gmail.com/vmta1 | grep -i bounce-upon-transfer-failure pmta show settings gmail.com/vmta1 | grep -i log-transfer-failures
3 articles
◇Four value types the whole config is written inBoolean, domain pattern, regular expression and time interval — defined once in § 3.2 and then used by all directives.◇Two inbound report processors and what to do with themBounces by message and complaints are parsed by two identically structured blocks; each has its own address list and its own pair of decisions about the message’s fate.◇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.