Почему это важно
Практическое пояснение: резервный MX полезен лишь вместе с правилами очереди и последующей передачи. При проверке маршрута нужны список кандидатов, ответы DNS и роль текущего сервера, а не одна строка MX.
Что подтверждено
SMTP-клиент должен уметь пробовать и повторно пробовать подходящие альтернативные адреса до успешной попытки. Допускается настраиваемый предел числа проверяемых адресов; в любом случае рекомендуется попробовать как минимум два.
Граница применимости: RFC 5321, октябрь 2008 года; §5.1, стр. 70. Обязательна возможность обработки альтернатив. Число два — SHOULD, а не требование найти два адреса там, где существует лишь один; установки могут ограничивать альтернативы.
Когда выбранное имя SMTP-узла имеет несколько IP-адресов, resolver возвращает упорядоченный список альтернатив. Отправитель SMTP должен пробовать их в предоставленном порядке.
Граница применимости: RFC 5321, октябрь 2008 года; §5.1, стр. 70. Правило касается адресов одного выбранного имени. Оно не подменяет сортировку разных MX по предпочтению и не задаёт универсального превосходства IPv4 над IPv6.
Relay, пересылающий письмо без изменения адресата, должен найти в списке MX собственные имена или адреса. Обнаружив себя, он исключает все MX с тем же числом предпочтения и с большими числами.
Граница применимости: RFC 5321, октябрь 2008 года; §5.1, стр. 70, 71. Условие относится к узлу, обозначенному MX и выбравшему дальнейший relay без переписывания адреса. Равноприоритетный сосед исключается вместе с собственной записью.
Если после исключения собственного уровня MX и менее предпочтительных уровней у relay не осталось кандидатов, возникает ошибка и письмо должно быть возвращено как недоставляемое. Если кандидаты остались, их рекомендуется пробовать начиная с наиболее предпочтительных.
Граница применимости: RFC 5321, октябрь 2008 года; §5.1, стр. 71. Это проверка петли у relay, а не обычное отсутствие MX в DNS. Она не разрешает вернуть в список самого себя или равноприоритетного соседа.
При временной ошибке DNS во время выбора почтовой цели сообщение должно остаться в очереди для повторной попытки. Ответ о несуществующем домене должен обрабатываться как ошибка; он не равен пустому успешному списку MX.
Граница применимости: RFC 5321, октябрь 2008 года; §5.1, стр. 69. Различаются типы исхода DNS. Конкретный код SMTP для всякого DNS-сбоя этим фрагментом не назначается.
Если MX домена существуют, SMTP не должен использовать A или AAAA самого домена в обход этих MX. Когда все найденные MX непригодны, требуется сообщить об ошибке; правило неявного MX действует только при отсутствии MX.
Граница применимости: RFC 5321, октябрь 2008 года; §5.1, стр. 69. Адресная запись самого домена не становится запасным SMTP-маршрутом лишь потому, что цели явно опубликованных MX не работают. Позднейшие специальные расширения здесь не разбираются.
Приняв задачу дальнейшей передачи, relay сам становится SMTP-клиентом и открывает следующий обмен с выбранным сервером. Успех первого обмена не означает, что следующий уже состоялся: в примере RFC резервный MX принимает письмо и затем отдельно передаёт его основной цели.
Граница применимости: RFC 5321, октябрь 2008 года; §3.6.2; приложение D.3, стр. 26, 90, 91. Речь о SMTP relay. Окончательная локальная доставка или передача через иной gateway имеют собственную роль; резервный MX не объявляется зеркалом почтового ящика.
Что проверить
- Получите весь набор применимых MX и адресов каждой выбранной цели.
- Сохраняйте порядок IP-адресов, выданный интерфейсом resolver.
- Укажите все имена и адреса, по которым текущий relay узнаёт себя.
- Удалите собственный уровень предпочтения и худшие уровни перед следующим relay.
- Отличайте временную ошибку DNS, несуществующий домен и успешный ответ без MX.
- Не подставляйте A или AAAA самого домена в обход существующих MX.
- Проверьте отдельную очередь и следующий SMTP-обмен резервного MX.
Первоисточники
Simple Mail Transfer Protocol
Internet Engineering Task Force · RFC 5321, October 2008
Полная локальная копия RFC 5321, октябрь 2008: прочитаны все 95 страниц, включая приложения A–F, 09.09.2026. Сверены конверт, DATA, ответственность, повторы и выбор MX. retrieved_on сохраняет дату офлайн-очереди. Позднейшие errata, расширения и реализации не проверялись.
Открыть первоисточник