In ::smtp::initialize, you can pass a list of mail
servers to try, but the timeout to failover and try
the "next" server is hard-coded to 600 seconds. It
would be better to have an option one could pass,
e.g. -servertimeout, to set this to something
different.
In my installation I needed much faster failover, so
I took lazy approach and tweaked the 600 down to 10
for the "hear" statement below.
...
if {[set code [catch { hear $token 600 }
result]]} {
array set response [list code 400
diagnostic $result]
} else {
array set response $result
}
...