The task. A recipient has started deferring or refusing, and the node must slow down right away rather than wait until the Hub telemetry notices.
What it is made of:
The parts have different scopes. All five are set per recipient and follow <domain> block merging, so they are usually written for a mailbox provider’s pattern rather than for one domain.
How they interact. Rate and retries take the normal values by default, and connections have their own default — 20: a queue in backoff mode without these lines behaves almost as before. The exit is forgotten most often: by default there is none, and the queue stays in backoff mode even after the cause has passed. And the queue must enter the mode on a trigger — a reply from <smtp-pattern-list> or a command.
Five lines and their defaults:
| Line | Default | What to set |
|---|---|---|
| backoff-max-msg-rate | as max-msg-rate | a share of the normal rate |
| backoff-max-smtp-out | 20 | less than the normal limit |
| backoff-retry-after | as retry-after | a growing ladder |
| backoff-to-normal-after | never | an exit period |
| backoff-notify | none | an address someone reads |
<domain [*.]gmail.com> backoff-max-msg-rate 100/h backoff-max-smtp-out 2 backoff-retry-after 30m,1h,3h backoff-to-normal-after 1h backoff-notify postmaster@example.com </domain>
pmta show settings gmail.com/vmta1 | grep '^backoff-'