Проверка адреса никогда не отправляет на него письмо. Ни разу и ни по случайности. Почему это так

Начать бесплатно

Проверка в реальном времени

Решайте, пока человек ещё на странице.

Один запрос на адрес. Ответ говорит, что мы нашли и что советуем с этим делать, — так что ваша форма регистрации может пропустить, попросить подтверждение, добавить шаг или отказать, а вам не придётся писать эти правила с нуля.

На адрес не отправляется письмоСтабильные коды причин

Создание аккаунта
Почта

person@example.com

Адрес проверен — продолжайте

Неинтерактивный предпросмотр продукта.

POST /v1/verifications
{ "status":       "deliverable",
  "action":       "allow",
  "confidence":   0.92,
  "checks":       { "accept_all": "no",
                    "disposable": false },
  "reason_codes": ["MX_FOUND",
                    "SMTP_RCPT_ACCEPTED"] }

Куда это встаёт

Четыре места, где адрес попадает в ваш продукт.

Регистрация

Проверяйте до того, как аккаунт создан, чтобы домен с опечаткой никогда не стал обращением в поддержку.

Сбор лидов

Держите одноразовые и общие ящики вне воронки прямо на форме, пока это ещё ничего не стоит.

Оформление заказа

Чек должен дойти. Поймайте опечатку, пока покупатель ещё здесь и может её исправить.

Внутренний ввод данных

CRM и бэк-офисные формы, где адрес вводит тот, кому он не принадлежит.

Форма интеграции

Один вызов, одно решение.

  1. 01

    Кто-то вводит адрес

    В вашей форме, на вашем домене.

  2. 02

    Ваш сервер вызывает API

    На стороне сервера, с вашим ключом. До браузера он не доходит.

  3. 03

    Мы собираем доказательства

    Синтаксис, домен, его маршрутизация и проверка ящика там, где она оправдана.

  4. 04

    Приходит ответ

    Статус, рекомендация, проверки и коды причин. Или pending с интервалом, через который стоит вернуться.

  5. 05

    Ваш сценарий решает

    Пропустить, попросить подтвердить, добавить шаг или остановиться. По вашим правилам, если хотите.

Ответ

Статус — что мы увидели. Действие — что мы советуем.

Это два отдельных поля, и намеренно. Разные продукты могут применять к одинаковым доказательствам совершенно разные правила, и ничего в самой проверке от этого не меняется.

Статус и рекомендуемое действие
СтатусЗначениеРекомендуемое действие
deliverableЯщик принял адрес, замечаний нетallow
riskyВероятно, работает, но доказательств малоchallenge
undeliverableЖёсткий отказ, и он не изменитсяreject
unknownПочтовый сервер не ответилallow_with_email_confirmation
pendingМедленные доказательства ещё собираютсяопросить через retry_after_ms

Кроме жёсткого отказа, всё здесь склоняется к тому, чтобы пропустить человека к письму-подтверждению. Это письмо — единственное, что действительно доказывает владение ящиком.

Пути интеграции

Три способа, в зависимости от того, кто это строит.

Серверный API

Кому подходит продуктовым командам, у которых уже есть бэкенд.
Трудозатраты одна конечная точка, один ключ.
Безопасность ключ остаётся на вашем сервере; анонимный доступ не предлагается.

Платформа автоматизации

Кому подходит командам без времени разработчиков.
Трудозатраты подключить аккаунт, сопоставить одно поле.
Безопасность ключ живёт в хранилище самой платформы.

Пакетный импорт

Кому подходит периодической чистке хранилища, которым вы уже владеете.
Трудозатраты загрузка и выгрузка, без кода.
Безопасность та же обработка и то же хранение, что и у всего остального.

Мы поставим здесь ссылку на документацию в тот день, когда публичный портал для разработчиков заработает. До тех пор ссылаться не на что, и мы предпочтём сказать это прямо, чем отправить вас на несуществующую страницу.

О времени, честно

Не мгновенно, и мы не собираемся это так называть.

Ответы из синтаксиса, DNS и маршрутизации приходят быстро. Ответы, которым нужна проверка ящика, зависят от того, поднимет ли трубку кто-то другой, а некоторые провайдеры намеренно затягивают первый контакт.

Быстрый путь

Ошибки разбора, несуществующие домены и объявления null MX решаются вообще без обращения к кому-либо.

Путь с проверкой

Там, где проверка оправдана, ответ может вернуться как pending с явным retry_after_ms, так что опрос ограничен, а не слеп.

Опубликованные цифры

Медианная и p95 задержка, лимиты запросов и аптайм: [ИЗМЕРЕННЫЕ ЦИФРЫ]. Они появятся здесь, когда будут измерены, и ни днём раньше.

Работа с неопределённостью

Что происходит, когда ответ не чистый.

Зелёная галочка и красный крест — лёгкая часть. О том, хорош ли верификатор, говорит то, что он делает, когда SMTP не даёт прямого ответа.

Домены, принимающие всё

Домен, принимающий любого получателя, ничего не говорит о конкретном ящике. Приём оценивается ниже и сообщается как рискованный с ACCEPT_ALL_DOMAIN, а не повышается до доставляемого.

Грейлистинг и ограничение запросов

Временный отказ — это не отклонение. Он записывается своим кодом причины, чтобы можно было запланировать повтор, а не ошибочно развернуть живого человека.

Таймауты

Соединение, на которое никто не отвечает, даёт unknown, а не undeliverable. Отсутствие ответа — это не отказ.

Блокировки по политике провайдера

Некоторые провайдеры отказывают проверкам из принципа, и часть этих отказов направлена на нашу отправляющую личность, а не на вашего получателя. Мы отслеживаем их отдельно, потому что об адресе они не говорят ничего.

Право отклонять нужно заслужить.Доказательства проверки могут приводить к отказу только там, где мы измерили их точность для этого провайдера. Где не измерили, по умолчанию срабатывает безопасный вариант, и никого не отклоняют. Отклонять на неизмеренных доказательствах — ровно тот путь, на котором общая политика провайдера превращается в живого человека, который не может зарегистрироваться в вашем продукте.

Ключи и злоупотребления

Серверный по замыслу.

Ключи

Запросы аутентифицируются bearer-ключом. Аккаунт может держать несколько, каждый привязан к названной интеграции, так что ключ можно ротировать или отозвать, не роняя всех вызывающих. Анонимный доступ не является настраиваемой опцией.

Лимиты

Объём запросов ограничен на каждого вызывающего и каждую исходную сеть. Отказ несёт явную подсказку о повторе, чтобы клиент отступил, а не долбился вслепую.

Что никогда не пересекает границу

Текст ответа удалённого сервера остаётся внутри системы. Он выдаёт детали инфраструктуры получателя, может нести недоверенные управляющие символы и меняется всякий раз, когда провайдер переформулирует сообщение.

Идемпотентность

Повторная проверка того же адреса возвращает тот же вывод под тем же идентификатором, а не делает работу дважды и не пишет для неё вторую запись.

Поставьте это перед своей формой регистрации.

Начните бесплатно. Приходите поговорить, когда объём или закупки потребуют чего-то другого.