техническое · ответ с источниками

Как проверить, что почтовый домен действителен

Чтобы проверить, действителен ли почтовый домен, выполните DNS-запрос записей почтового обменника (MX) и убедитесь, что домен настроен на приём почты. Домен считается пригодным для почты, если у него есть хотя бы одна активная MX-запись, указывающая на почтовый сервер. Если MX-записей нет, домен не может принимать почту, если только не используется резервный вариант с A-записью, хотя в современных конфигурациях это встречается редко.

Проверка синтаксиса

Первый шаг — убедиться, что домен соответствует стандарту RFC 5322. Доменная часть email-адреса должна содержать домен верхнего уровня и соответствовать определённым правилам для символов. Прежде чем выполнять сетевой запрос, проверьте с помощью регулярных выражений, что в ней нет недопустимых символов и нескольких точек подряд. Так вы избежите лишних DNS-запросов для заведомо некорректных строк.

Поиск MX-записи

Выполните DNS-запрос MX-записи домена. MX-запись указывает почтовый сервер, который принимает письма от имени домена. Если DNS-запрос возвращает одну или несколько действительных MX-записей, домен технически способен принимать почту. Для ручной проверки подойдут dig или nslookup, а для массовых проверок библиотеки языков программирования предоставляют асинхронные методы.

Резервный вариант с A-записью

Согласно стандартам SMTP, если MX-записи нет, сервер отправки может попытаться доставить почту на IP-адрес, указанный в A-записи домена. Хотя это устаревшее поведение, проверка A-записи даёт дополнительный уровень валидации. Однако отсутствие и MX-, и A-записей однозначно означает, что домен непригоден для доставки почты.

Инструменты проверки

Разработчикам, которые внедряют такую проверку в больших масштабах, эффективнее использовать специализированный сервис валидации, чем управлять DNS-запросами вручную. SendHQ предлагает бесплатные инструменты на https://sendhq.cc/tools для проверки настроек домена. Эти инструменты автоматизируют поиск записей и выявляют типичные ошибки конфигурации, которые могут приводить к сбоям доставки.

Обработка ошибок DNS

Различайте ответ NXDOMAIN и тайм-аут. Ответ NXDOMAIN прямо указывает, что домен не существует. Тайм-аут или SERVFAIL может означать временную проблему с DNS или строгий файрвол. Для неоднозначных ошибок реализуйте логику повторных попыток с экспоненциальной задержкой, чтобы не помечать действительные домены как недействительные во время кратковременных сбоев сети.

Что спрашивают команды

Гарантирует ли действительная MX-запись, что email-адрес существует?

Нет, MX-запись лишь подтверждает, что домен может принимать почту. Она не проверяет, существует ли на этом сервере конкретный почтовый ящик или пользователь.

Может ли домен быть действительным без MX-записи?

Да, если у домена есть A-запись, некоторые SMTP-серверы попытаются доставить почту на этот IP-адрес, хотя для современной почты это нестандартная практика.

Чем проверка домена отличается от проверки email-адреса?

Проверка домена выясняет, настроен ли домен для почты, а проверка email-адреса — синтаксис конкретного адреса и состояние его домена.

Первоисточники