Для большинства доменов единственный авторитет в вопросе существования ящика — это почтовый сервер, который его обслуживает. CleanContact спрашивает этот сервер напрямую, по тому же протоколу SMTP, что и обычный почтовый клиент, — но никогда не доставляет письмо.
Поиск сервера
Сначала мы смотрим MX-записи домена, чтобы узнать, какие серверы отвечают за его почту, и подключаемся к серверу с наивысшим приоритетом.
Рукопожатие
Затем мы проходим начало SMTP-транзакции:
220 mx.example.com ESMTP
HELO checker.cleancontact.ru
250 mx.example.com
MAIL FROM:<probe@cleancontact.ru>
250 OK
RCPT TO:<someone@example.com>
250 OK ← ящик существует
... или ...
550 No such user ← ящика не существуетРешающий момент — ответ на RCPT TO. Код 250 означает, что сервер готов принять почту для адреса; 550 (или похожий 5xx) — что нет. Мы читаем этот ответ и отключаемся: ни DATA, ни письма, ничего не попадает в ящик.
Почему не всегда всё чисто
Серверы не обязаны быть честными. Catch-all принимает любой RCPT TO независимо от того, реален ли ящик, а грейлистинг возвращает временный 4xx с просьбой вернуться позже. CleanContact справляется с этим, направляя запрос на свежие узлы, соблюдая паузы и возвращая Unknown вместо догадок.