Глоссарий
SMTP-рукопожатие
Обмен командами и ответами с почтовым сервером. При проверке адреса позволяет запросить прием конкретного получателя.
SMTP-рукопожатие — обмен командами и ответами между клиентом и принимающим почтовым сервером. При проверке email этот обмен позволяет запросить прием конкретного получателя. Ответ относится к текущей сессии: он не гарантирует доставку будущего письма или попадание во «Входящие».
В какой момент сервер получает адрес
Сначала сервер отправляет приветствие. Клиент представляется командой EHLO, затем указывает отправителя SMTP-конверта через MAIL FROM и получателя через RCPT TO. На каждую команду сервер отвечает числовым кодом. Порядок описан в RFC 5321. Если сервер предлагает STARTTLS, соединение можно зашифровать до указания отправителя. После этого клиент повторяет EHLO, как описано в RFC 3207.
При полной проверке Emvero может выполнить SMTP-пробу: прочитать ответ на RCPT TO и проверить, принимает ли домен произвольных получателей. Команду DATA сервис не отправляет, поэтому содержимое письма не передается. Для сброса текущей транзакции и закрытия соединения могут использоваться RSET и QUIT. При проверке домена SMTP-сессия не открывается.
Что можно узнать из ответа сервера
Код SMTP_RCPT_ACCEPTED означает, что сервер принял получателя на этом этапе. Это может обосновать статус deliverable. Однако catch-all домен принимает и адреса без отдельных ящиков; для него результат может быть risky. Положительный ответ не подтверждает доступ человека к ящику и не гарантирует доставку будущего сообщения.
Грейлистинг с кодом SMTP_GREYLISTED или тайм-аут соединения SMTP_CONNECT_TIMEOUT оставляют вопрос о ящике открытым. Отрицательный ответ тоже нужно читать в контексте: сервер может ограничивать доступ по правилам для отправителя. Наблюдение SMTP_MAILBOX_NOT_FOUND Emvero сейчас преобразует в SMTP_RECIPIENT_REJECTED_AMBIGUOUS со статусом unknown. Код SMTP_FORWARDING_INDICATED, связанный с перенаправлением, также не дает однозначного ответа о ящике.
Полная проверка может закончиться и без SMTP-сессии: например, если результат уже определен сведениями о домене или правила провайдера предусматривают SMTP_PROBE_SKIPPED_PROVIDER_POLICY. Место SMTP в общем процессе объясняется в статье о работе проверки email. При использовании инструмента проверки email читайте status вместе с reason_codes, чтобы понять основание результата.
Что возвращает сервис
Эти коды входят в словарь API и объясняют результат проверки. В пояснениях также указаны значения, которые текущие правила проверки или SMTP-проба не возвращают.
SMTP_RCPT_ ACCEPTED - Получатель принят
SMTP_RECIPIENT_ REJECTED_ AMBIGUOUS - Получатель отклонён по неоднозначной причине
SMTP_GREYLISTED - Временный отказ, классифицированный как грейлистинг
SMTP_CONNECT_ TIMEOUT - SMTP-соединение не установлено до истечения срока ожидания
SMTP_PROBE_ SKIPPED_ PROVIDER_ POLICY - Проверка пропущена по политике провайдера
SMTP_FORWARDING_ INDICATED - Ответ сервера указывает на пересылку; определенного ответа о получателе нет