On 4 January 2017 at 16:52, Wietse Venema <wie...@porcupine.org> wrote: > Dominic Raferd: >> My idea is to force a delay (2 seconds say) between the initial >> failure and the re-sending of the same email (same queue-id) to the >> secondary mx (or fallback relay) - in the intervening time the message >> may be pulled from the queue. Following earlier advice from Wietse >> here I am already using 'smtp_transport_rate_delay = 5s', but although >> helpful in other respects this does not delay the re-sending in this >> case. > > That won't work well because the 'next mx' is chosen in the SMTP > client (i.e. the message is not returned to the queue between > attempts to deliver the message to different MX hosts) and we don't > want to pause the SMTP client as that would prevent it from delivering > other email. > > (the destination rate delay is per destination and must therefore > be implemented in the queue manager). > > You can reduce the number of MX hosts to try to just 1, by setting > up an SMTP client for gmail etc. that has > > smtp -o smtp_mx_session_limit=1 > > With that, Postfix still tries multiple MX hosts until one responds, > and you will have $min_backoff-time or more to dig into the queue > and remove the offending message. >
Thanks Wietse that sounds like a good plan, how would I set up a 'special' smtp client for gmail servers with the reduced mx session limit? I think I know how to create the special client in master.cf, but how do I tell the delivery agent (queue?) to use this smtp client for gmail destinations (and not for others)?