Hello Nicolas, and thank you for following up as these are definitely interesting questions. I was not sure on the duration of cached lookups so I checked with development and was advised that we cache DNS values based on the DNS value's TTL value. When adding MX records to DNS the Time To Live must also be configured, and SmarterMail follows this value in caching results. One way to avoid any DNS caching related issues, and allow yourself a little more control over caching and timing is this:
- Set up an internal DNS server with caching functionality that you can control the timing on.
- Set up one of the two DNS server addresses in SmarterMail to use this internal mail server, and disable DNS caching.
That would allow your DNS server to poll and cache MX lookup values, and would give you control over how long those caches exist and under what conditions to flush them and acquire a fresh value.
As to your question on what happens if a provider changes their MX records, and SM is holding the cached value; in this case SM would first attempt delivery to the address it has cached in memory. If this fails it would either attempt delivery on the next priority MX record, and if there are none, would save the message in the spool for retry at a later time. Hopefully by that point the MX records would have updated as well.