Проверить почтовый сервер — значит подключиться к нему снаружи и убедиться, что он отвечает приветствием 220, поддерживает STARTTLS, не пересылает чужую почту как открытый релей, имеет корректную PTR-запись и не числится в спам-листах. Пять проверок, каждая занимает минуту.
Что вообще проверяют у почтового сервера
«Сервер не работает» на практике означает пять разных вещей, и лечатся они по-разному. Прежде чем менять настройки, стоит понять, какая из проверок падает.
| Что проверяем | Признак неисправности | К чему приводит |
|---|---|---|
| Доступность порта | Соединение не устанавливается или висит | Письма не уходят и не приходят вовсе |
| Приветствие (220) | Другой код или тишина после connect | Отправитель получает временную ошибку и retry |
| STARTTLS | Команда не предлагается в EHLO | Письма идут открытым текстом, часть получателей их отвергнет |
| Открытый релей | Сервер принимает чужого отправителя для чужого домена | Спам от вашего имени и быстрый бан IP |
| PTR-запись | Обратная зона не резолвится или указывает не туда | Крупные почтовики отклоняют или кладут в спам |
Как подключиться к SMTP вручную
Самая быстрая проверка — открыть соединение и посмотреть, что сервер скажет сам. Порт 25 отвечает за приём почты между серверами, 587 — за отправку клиентами (submission), 465 — то же самое, но с шифрованием сразу при подключении. Подробный разбор ролей — в статье про почтовые порты.
# Приветствие и список возможностей сервера
nc -v mail.example.com 25
EHLO test.example.com
В ответ придёт код 220 с именем сервера, а затем на EHLO — список поддерживаемых расширений. Именно в нём видно, есть ли STARTTLS, AUTH и ограничение на размер письма SIZE.
Приветствие бывает многострочным: сервер отвечает 220- с дефисом на всех строках, кроме последней. Если читать только первую строку и обрывать чтение, код можно принять за отсутствующий — на этом спотыкаются самописные проверялки.
Как проверить STARTTLS и шифрование
Открытая передача почты сегодня не столько небезопасна, сколько неудобна: часть принимающих серверов требует TLS, и без него письмо просто не примут. Проверяется одной командой.
openssl s_client -starttls smtp -connect mail.example.com:587 -crlf
В выводе смотрят на три вещи: версию протокола (должна быть TLS 1.2 или 1.3), срок действия сертификата и совпадение имени в сертификате с именем сервера. Несовпадение имени — самая частая находка: сертификат выписан на домен сайта, а почта ходит через mail.-поддомен.
Если сертификат просрочен или цепочка неполная, разбор причин есть в отдельных материалах: просроченный сертификат и неполная цепочка.
Открытый релей: как проверить и почему это опасно
Открытый релей — сервер, который принимает письмо от кого угодно кому угодно, не требуя аутентификации. Такой сервер за считаные часы становится источником спама, а его IP попадает в чёрные списки, откуда выбираться долго.
Проверка сводится к попытке отправить письмо, где ни отправитель, ни получатель к вашему домену отношения не имеют:
MAIL FROM:<probe@example.org>
RCPT TO:<probe@example.net>
Правильный ответ — отказ: 550 relay not permitted или 554. Если сервер отвечает 250 OK, релей открыт, и закрывать его надо немедленно. Что означают эти коды и чем 550 отличается от 554 — в разборе ошибок SMTP.
Почему без PTR-записи письма не доходят
PTR — обратная запись, которая по IP-адресу возвращает имя. Крупные почтовые системы проверяют её первым делом: если IP отправителя не резолвится назад или резолвится в чужое имя, письмо отклоняют или кладут в спам ещё до анализа содержимого.
dig -x 203.0.113.10 +short
Результат должен совпадать с именем, которым сервер представляется в EHLO, и это имя должно резолвиться обратно в тот же IP. Настраивает PTR не владелец домена, а тот, кому принадлежит адрес, — хостер или провайдер. Подробнее — в статье про обратный DNS и PTR.
Как проверить сервер в спам-листах
Даже верно настроенный сервер попадает в чёрные списки — из-за взломанного аккаунта, чужого соседа по IP на общем хостинге или прошлого владельца адреса. Проверять надо именно IP отправляющего сервера, а не домен.
Если адрес нашёлся в списках, порядок действий — сначала устранить причину, потом подавать заявку на исключение: как выйти из email-блэклиста. Заявка без устранения причины приводит к повторному попаданию и ужесточению условий.
Как проверить всё сразу
Тест SMTP-сервера выполняет эти проверки за один проход: устанавливает соединение, читает приветствие и список расширений, пробует STARTTLS, проверяет отказ в релее и измеряет время отклика. Результат показывает, какая из пяти проверок падает, — дальше остаётся чинить конкретное место, а не гадать.
Чтобы посмотреть на почту домена целиком — MX, SPF, DKIM и DMARC вместе, — есть проверка доставляемости, а маршрут письма покажут MX-записи домена.
Типичные находки и что они значат
| Что видно | Что это значит | Куда смотреть |
|---|---|---|
| Соединение по 25 висит, по 587 работает | Порт 25 закрыт провайдером или файрволом | Правила файрвола, политика хостера |
В EHLO нет STARTTLS | Шифрование не настроено или отключено | Конфигурация MTA, наличие сертификата |
| Сертификат на другое имя | Выписан на домен сайта, а не на mail. | Выпустить сертификат на имя из EHLO |
250 OK на чужого получателя | Открытый релей | Требовать AUTH для submission, закрыть 25 снаружи |
dig -x пусто | PTR не настроена | Запрос хостеру или владельцу IP |
Частые вопросы
Чем проверка сервера отличается от проверки домена? Сервер проверяют по IP и порту: отвечает ли он, шифрует ли, не релей ли. Домен проверяют по DNS: куда указывают MX, что в SPF, есть ли DKIM и DMARC. Письмо не дойдёт при поломке любой из двух частей, и путать их — частая причина долгих поисков.
Почему письма уходят, но попадают в спам? Значит транспорт исправен, а репутация или подпись — нет. Смотреть надо на SPF, DKIM, DMARC и историю рассылок: почему письма уходят в спам.
Обязателен ли порт 25 наружу? Для приёма почты — да, иначе другие серверы не смогут вам её доставить. Для отправки клиентами он не нужен: клиенты подключаются по 587 с аутентификацией, а многие провайдеры блокируют исходящий 25 у себя.
Сервер отвечает медленно — это проблема? Отклик в несколько секунд обычно означает, что сервер делает проверки отправителя при подключении: обратный DNS, серые списки, репутационные базы. Само по себе это не поломка, но при отклике за пределами десятков секунд отправляющие серверы начинают считать попытку неудачной.
Чеклист проверки
- Порт 25 принимает соединения снаружи, 587 доступен клиентам
- Приветствие возвращает код
220, многострочный вариант читается целиком - В ответе на
EHLOприсутствуетSTARTTLS - Сертификат не просрочен, цепочка полная, имя совпадает с именем в EHLO
- Попытка релея для чужих отправителя и получателя отклоняется
dig -xпо IP возвращает имя, которое резолвится обратно в тот же IP- IP сервера не числится в спам-листах