On 2/23/2011 12:50 PM, Robert Goodyear wrote:

So: the message is ready to send. Postfix queries DNS for my smarthost entry 
and gets MTA1 = 10, MTA2 = 10. Postfix opens a connection to MTA1 which 
responds with a 'not now, too busy' response. Does Postfix hold the MX record 
in memory _for the duration of THIS message's delivery attempt_ knowing that 
MTA2 is next, or does Postfix re-query to look for another peer immediately? If 
it re-queries, and knowing that SMTP randomize should return a random result, 
and if MTA1 is _not_ known to have (soft) failed just a moment ago, then 
technically the next attempt has a 50% chance of hitting MTA1 for a retry, 
right?


Postfix does a pretty good job of "doing the right thing" out of the box.

On each delivery attempt, if the first MX fails, postfix will try the next MX.

If all available MX's fail, the message goes to defer (or fallback_relay if configured). Next time the message enters the active queue, the process starts again.
http://www.postfix.org/postconf.5.html#smtp_mx_address_limit
http://www.postfix.org/postconf.5.html#smtp_mx_session_limit

For the same destination, postfix will remember a dead host across multiple messages, and not retry a known dead host for a period of time.



  -- Noel Jones

Reply via email to