Глоссарий
Ошибки протокола
Ошибка протокола SMTP означает, что проверка не смогла продолжить обмен командами и ответами. Проблема может быть связана с приветствием, форматом ответа или лимитом чтения и не дает определенного ответа о ящике.
Для SMTP-пробы нужен обмен командами и ответами, который сервис может прочитать и разобрать. Сервер сначала отправляет приветствие, затем отвечает на команды клиента. Формат трехзначных кодов и многострочных ответов задает RFC 5321. Обычный порядок обмена объясняется в статье о SMTP-диалоге.
Что может остановить обмен
SMTP_BANNER_INVALID означает, что проба не получила нужного положительного приветствия. В текущей реализации этот код возможен и для отрицательного приветствия, записанного по правилам SMTP. Поэтому он не доказывает, что на порту работает другой сервис. Если формат ответа нарушен или обмен не удается разобрать по другой причине, Emvero может вернуть SMTP_PROTOCOL_ERROR.
SMTP_REPLY_TOO_LARGE означает превышение лимита чтения: слишком большой ответ, слишком много строк или слишком большой суммарный объем ответов за сессию. Сервис прекращает чтение, чтобы не получать данные без ограничения. Код не относится к размеру писем или вместимости ящика.
Чем ошибка обмена отличается от отказа получателю
Ответ 550 на RCPT TO, записанный в корректном формате, является отказом получателю и классифицируется отдельно. Он не становится ошибкой протокола только потому, что отрицательный. Почему такой отказ может оставить результат неопределенным, объясняет статья о неоднозначном SMTP-отказе. Неудачное включение шифрования относится к сбоям TLS и STARTTLS. Если подключение не состоялось, причиной может быть ошибка соединения или ограничение SMTP-запросов.
Как использовать результат неполного обмена
Если других определяющих свидетельств нет, завершенная проверка с неполным SMTP-ответом получает unknown и allow_with_email_confirmation. Ошибка одной попытки не доказывает отсутствие получателя или неисправность всех почтовых маршрутов домена. Она также не позволяет предсказать доставку будущего письма.
Храните reason_codes, checks и freshness вместе с адресом, чтобы сохранить причину и возраст полученных сведений. Если вы управляете принимающим сервером и ошибки повторяются, проверьте его настройки. Новая попытка может помочь при изменившихся условиях, но ее результат не гарантирован. Возможные следующие шаги, включая подтверждение адреса, описаны в сравнении unknown и undeliverable.
Что возвращает сервис
Эти коды входят в словарь API и объясняют результат проверки. В пояснениях также указаны значения, которые текущие правила проверки или SMTP-проба не возвращают.
SMTP_BANNER_ INVALID - Сервер не отправил положительное SMTP-приветствие
SMTP_PROTOCOL_ ERROR - Не удалось завершить или разобрать обмен по протоколу SMTP
SMTP_REPLY_ TOO_ LARGE - SMTP-ответы превысили лимит чтения по размеру, числу строк или общему объему за сессию