Когда кто-то отправляет письмо на адрес 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-адрес.
Порядок доставки выглядит так:
- Сервер отправителя берёт домен из адреса получателя (всё после
@). - Запрашивает в DNS MX-записи этого домена.
- Сортирует их по приоритету и пробует подключиться к серверу по SMTP на порт 25.
- Если сервер недоступен, пробует следующий; если недоступны все — ставит письмо в очередь и повторяет попытки, обычно в течение нескольких дней.
Если у домена вообще нет 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 — так мы быстрее найдём причину.