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