<domain>
A queue is in retry mode, waiting for the next attempt per retry-after. A new message is submitted to it. This line decides what happens: wait for the schedule — the vendor default false — or schedule an attempt immediately.
The point of enabling it lies in transactional mail. A message submitted just now is usually more important and fresher than what has been sitting in the queue for an hour; making it wait out the common pause means punishing the new message for the old one.
The point of disabling it lies in mailings. There submission flows continuously, and every new message resets the pause: the schedule stops existing, and the node contacts the receiver exactly as often as messages are submitted.
For mailings — only disabled. On a continuous stream enabling it is equivalent to giving up the retry schedule.
For transactional mail — it can be enabled, but only where submission is rare and one-off: an order confirmation, a login code. Such mail is sensibly handled by a separate VirtualMTA anyway — and then this line will not affect the mailing either.
Check it together with the rate. Bypassing the schedule does not cancel rate limits: the attempt will be scheduled immediately but will go out when max-msg-rate allows.
# a mailing: the schedule must work <domain *> retry-after 30m </domain> # a transactional stream: a fresh message does not wait for someone else's pause <virtual-mta transactional> <domain *> retry-upon-new-mail true retry-after 2m </domain> </virtual-mta>
what people get wrong and how it ends2 mistakes▶
§ 3.3.10.96
our experience
1 relation
pmta show settings gmail.com/vmta1 | grep -i retry-upon-new-mail pmta show queues --mode=retry --maxitems=20
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.