I am wondering what happens when a domain name in DNS has multiple MX records with different Times to Live (TTLs)?
For example, what if these are the MX records for
- TTL = 3 days, priority = 1, result = mx1-slow.example.com
- TTL = 60 seconds, priority = 1, result = mx1-fast.example.com
- TTL = 1 day, priority = 2, result = mx2.example.com
- TTL = 1 hour, priority = 3, result = mx3-hour.example.com
- TTL = 60 seconds, priority = 3, result = mx3-fast.example.com
- TTL = 2 days, priority = 3, result = mx3-slow.example.com
What happens if a mail transfer agent is sending a message to this domain -- where some of the MX servers might be working and some might not -- and has the results cached for 2 minutes? 2 hours? 1.5 days? 2.5 days? Does it need to go by the smallest TTL across all the MX records (60 seconds in this case) and do a re-lookup of all the MX records if that much time has passed, ignoring the longer TTLs on the remaining MX records? Or does the cache actually take into account all of the different TTLs somehow? If all of the TTLs are taken into account, can you please provide some example scenarios of how this might work?