<domain>set by the Hub
A queue goes into retry mode not only because the receiver refused. It also goes there when the receiver could not be reached at the name level: the DNS server did not answer, a record came back with a temporary error, the resolver hit a timeout. For this case not retry-after but this line applies.
The separation makes sense for exactly one reason: the receiver did not see this attempt. There was no connection, it did not get the message, and the sender’s reputation is not at risk. So here you can hurry — the vendor default 1m is noticeably shorter than the usual step, and the manual directly advises keeping it smaller.
It has no paired value of its own for backoff mode — and none is needed: it applies in backoff too. It is the only line in the retry family that has no twin with the backoff- prefix.
Shorter than the usual step is a rule, not a matter of taste. The point of a separate line is that the receiver has nothing to do with it. Making it equal to retry-after means giving up the separation altogether.
Half a minute is enough. A temporary resolver failure lasts seconds or minutes; if it lasts longer, the pause is not the issue.
For <domain> with an asterisk keep it longer. Unknown domains do have typos and dead zones, and half a minute for such a domain means thousands of wasted queries.
# a well-known mailbox provider: a DNS failure is almost certainly a matter of minutes <domain gmail.com> retry-after 30m retry-after-dns-error 30s</domain> # everything else: the domain may not exist at all <domain *> retry-after-dns-error 5m</domain>
what people get wrong and how it ends2 mistakes▶
§ 3.3.10.50
our experience
3 relations
pmta show settings gmail.com/vmta1 | grep -i retry-after-dns-error grep -i 'dns\|resolv' /var/log/pmta/pmta.log | tail -20
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.