MCMail by MYCLOUD

MX-записи: как почта находит ваш сервер и как их проверить

Когда кто-то отправляет письмо на адрес name@example.uz, его сервер сначала спрашивает у DNS, куда доставлять почту для домена example.uz. Ответ на этот вопрос — MX-записи. Разберём, как они устроены, как их проверить и какие ошибки встречаются чаще всего.

Что такое MX-запись

MX (Mail Exchanger) — тип DNS-записи, который указывает, какие серверы принимают почту для домена. Каждая MX-запись состоит из двух частей: числа-приоритета и имени почтового сервера.

example.uz.    3600    IN    MX    10 mx1.example.uz.
example.uz.    3600    IN    MX    20 mx2.example.uz.
mx1.example.uz. 3600   IN    A     192.0.2.10
mx2.example.uz. 3600   IN    A     198.51.100.20

Здесь почта для example.uz принимается серверами mx1 и mx2, а их IP-адреса заданы отдельными A-записями. Важно: MX указывает именно на имя хоста, а не на IP-адрес.

Порядок доставки выглядит так:

  1. Сервер отправителя берёт домен из адреса получателя (всё после @).
  2. Запрашивает в DNS MX-записи этого домена.
  3. Сортирует их по приоритету и пробует подключиться к серверу по SMTP на порт 25.
  4. Если сервер недоступен, пробует следующий; если недоступны все — ставит письмо в очередь и повторяет попытки, обычно в течение нескольких дней.

Если у домена вообще нет MX-записей, по стандарту (RFC 5321) отправитель попробует доставить почту на A-запись самого домена. Полагаться на это не стоит: явная MX-запись надёжнее и понятнее.

Приоритеты: меньше — значит главнее

Число в MX-записи — это предпочтение (preference). Чем меньше число, тем выше приоритет. Сервер с приоритетом 10 будет использоваться раньше сервера с приоритетом 20.

КонфигурацияКак работает
10 mx1, 20 mx2Основной сервер mx1, резервный mx2 используется только при недоступности mx1
10 mx1, 10 mx2Нагрузка распределяется между серверами примерно поровну
Одна запись 10 mx1Единственный сервер; при сбое письма ждут в очереди у отправителя

Сами значения не важны — важно их соотношение. 10/20 и 1/5 работают одинаково. Принято использовать шаг 10, чтобы при необходимости вставить сервер между существующими.

Не добавляйте «на всякий случай» резервный MX чужого или старого сервиса. Если резервный сервер не знает ваших ящиков или плохо фильтрует спам, через него будут приходить спам и потерянные письма.

TTL: как быстро применяются изменения

TTL (time to live) — время в секундах, в течение которого другие DNS-серверы могут хранить запись в кэше. При TTL 3600 после изменения MX часть отправителей ещё до часа будет использовать старое значение.

  • В обычной работе подходит TTL 3600–86400 секунд (от часа до суток).
  • Перед переездом на другой почтовый сервис заранее, за сутки-двое, уменьшите TTL до 300–600 секунд. Тогда переключение пройдёт быстрее.
  • После переключения и проверки верните TTL к обычному значению.

Подробный план смены почтового сервиса описан в статье о переносе почты без потери писем.

Как проверить MX-записи

Windows: nslookup

nslookup -type=mx example.uz

Чтобы спросить конкретный публичный DNS-сервер, а не кэш провайдера, добавьте его адрес в конце, например nslookup -type=mx example.uz 8.8.8.8.

Linux и macOS: dig

dig MX example.uz +short
10 mx1.example.uz.
20 mx2.example.uz.

Затем проверьте, что имена серверов разрешаются в IP-адреса:

dig A mx1.example.uz +short
192.0.2.10

Полезно сравнить ответ авторитетного сервера домена и публичных резолверов. Узнать авторитетные серверы можно командой dig NS example.uz +short, а затем спросить один из них напрямую: dig @ns1.example.uz MX example.uz. Если авторитетный сервер уже отдаёт новые данные, а публичный — старые, нужно просто подождать истечения TTL.

Онлайн-сервисы вроде mxtoolbox.com показывают MX-записи и сразу проверяют доступность серверов. Это удобно, если под рукой нет командной строки.

Типичные ошибки

ОшибкаЧто происходитКак исправить
MX указывает на IP-адресЗапись некорректна, часть серверов не доставит почтуУкажите имя хоста, а IP задайте A-записью
MX указывает на CNAMEЗапрещено стандартом, поведение отправителей непредсказуемоНаправьте MX на имя с собственной A-записью
Остались старые MX рядом с новымиЧасть писем уходит на прежний серверУдалите все MX прежнего сервиса
Нет точки в конце имени в зонном файлеПолучается mx1.example.uz.example.uzВ зонном файле пишите полное имя с точкой; в веб-панелях — как требует панель
MX добавлены не тамЗаписи созданы у регистратора, а DNS обслуживается другим провайдеромПроверьте NS-записи и правьте зону там, куда они указывают
Запись создана для поддоменаВ поле имени указано mail вместо корня доменаДля корня используйте @ или пустое поле, в зависимости от панели

Последние два пункта встречаются чаще всего. Если вы не уверены, где управляется DNS вашего домена, посмотрите статью о выборе и регистрации домена.

MX — только часть настройки

MX отвечает за входящую почту. Чтобы ваши исходящие письма не попадали в спам, у домена должны быть настроены SPF, DKIM и DMARC. Это отдельные TXT-записи, и они не заменяют MX.

Для доменов, которые вообще не принимают почту, есть «нулевой MX» (RFC 7505): запись MX 0 . сообщает отправителям, что почту сюда слать бесполезно, и они сразу возвращают ошибку вместо многодневных попыток.

При подключении домена к MCMail точные MX-записи и остальные DNS-записи присылаем мы. Если после изменения MX почта не приходит, напишите в поддержку @mycloudsupport и приложите вывод dig MX или nslookup — так мы быстрее найдём причину.