Сравнение
SMTP-проверка и проверка синтаксиса
Проверка синтаксиса разбирает форму email-адреса без обращения к сети. SMTP-проверка может получить ответ сервера о получателе, но даже принятие не гарантирует доставку или доступ к ящику.
| Что вы хотите узнать | Проверка синтаксиса | Полная проверка с возможными свидетельствами SMTP |
|---|---|---|
| Что проверяется | Поддерживаемая структура и длина ввода | Домен и почтовый маршрут, затем ответы о получателе, если проба возможна |
| Корректно записанный, но ошибочный адрес | Может пройти, даже если человек указал другого получателя или домен | Ошибка домена или признак опечатки могут помочь; определить задуманный адрес по ним нельзя |
| Существование ящика | К принимающему серверу не обращается | Принятие дает свидетельство; catch-all или неоднозначный отказ могут оставить вопрос открытым |
| Метки с плюсом и Unicode | Зависит от грамматики и политики парсера | Сохраняет адрес; локальной части вне ASCII также нужна поддержка SMTPUTF8 у принимающего сервера |
| Обращение к сети | Может работать локально без DNS и SMTP | Нужны свидетельства о домене; SMTP может выполняться, быть пропущен или еще ожидать завершения |
| Решение приложения | Отклоняет некорректный ввод; доставка для корректного остается недоказанной | Читает status, action и reason_codes; отделяет unknown от undeliverable |
Выберите проверку под нужный вопрос
Проверка формата замечает пропущенную @ или некорректную локальную часть еще во время ввода. Она не устанавливает, существует ли домен и принимает ли ящик письма. alex@example.com записан корректно независимо от того, есть ли ящик Alex. Определение синтаксиса email-адреса описывает правила ввода.
Полная проверка собирает свидетельства о домене и почтовом маршруте и может открыть SMTP-сессию. На этапе RCPT TO принимающий сервер отвечает об указанном получателе. Emvero останавливается перед DATA и не отправляет письмо. Эти этапы описаны в определении SMTP-диалога и RFC 5321. Полная проверка также может пропустить SMTP по правилам сервиса или вернуть pending. Ее название задает глубину проверки, но не обещает SMTP-сессию при каждом запросе.
Как читать отказ и принятие получателя
Парсер синтаксиса не запрашивает домен. Следующая проверка домена может установить DNS_NXDOMAIN, а LIKELY_DOMAIN_TYPO дает лишь предложение, не доказательство задуманного написания. Ошибочно введенный домен тоже может существовать.
SMTP добавляет наблюдение из конкретной сессии. Catch-all сервер может принимать произвольных получателей, что приводит к risky. Отказ, классифицированный как SMTP_MAILBOX_NOT_FOUND, сейчас возвращается как unknown с SMTP_RECIPIENT_REJECTED_AMBIGUOUS. Тайм-ауты и ограничения сервера также могут оставить результат неопределенным. Ни принятие, ни отказ во время пробы не гарантируют исход отправки будущего письма.
Совместите этапы в форме регистрации
Сначала локально проверьте поддерживаемый синтаксис и сохраните введенную локальную часть. Затем запросите проверку со своего сервера, если для решения нужны сетевые свидетельства. В статье об email-адресах с плюсом объясняется, почему удаление метки может изменить получателя. Локальная часть вне ASCII также зависит от поддержки SMTPUTF8 у принимающего сервера.
Для завершенных проверок читайте action вместе с status и reason_codes. При pending повторно запрашивайте результат, не превращая этот статус в unknown. Если важен доступ к ящику, запрашивайте подтверждение. Руководство по проверке в форме регистрации показывает, как применить allow_with_email_confirmation и не отклонять адрес автоматически из-за неопределенной пробы.
Где это видно в результате
Коды причин из закрытого словаря ответа API. Это ровно те строки, против которых интеграция пишет if.
INVALID_SYNTAX | Адрес составлен неверно |
DNS_NXDOMAIN | Домена не существует |
SMTP_MAILBOX_NOT_FOUND | SMTP-наблюдение об отказе в приеме получателя; текущие правила возвращают unknown с SMTP_RECIPIENT_REJECTED_AMBIGUOUS. |
LIKELY_DOMAIN_TYPO | Домен похож на опечатку |
Посмотрите результат проверки.
В примере показаны статус, рекомендуемое действие и свидетельства проверки. Войдите в аккаунт, чтобы проверить свой адрес.