Проверка в реальном времени
Решайте, пока человек ещё на странице.
Один запрос на адрес. Ответ говорит, что мы нашли и что советуем с этим делать, — так что ваша форма регистрации может пропустить, попросить подтверждение, добавить шаг или отказать, а вам не придётся писать эти правила с нуля.
На адрес не отправляется письмоСтабильные коды причин
person@example.com
Неинтерактивный предпросмотр продукта.
{ "status": "deliverable",
"action": "allow",
"confidence": 0.92,
"checks": { "accept_all": "no",
"disposable": false },
"reason_codes": ["MX_FOUND",
"SMTP_RCPT_ACCEPTED"] }Куда это встаёт
Четыре места, где адрес попадает в ваш продукт.
Регистрация
Проверяйте до того, как аккаунт создан, чтобы домен с опечаткой никогда не стал обращением в поддержку.
Сбор лидов
Держите одноразовые и общие ящики вне воронки прямо на форме, пока это ещё ничего не стоит.
Оформление заказа
Чек должен дойти. Поймайте опечатку, пока покупатель ещё здесь и может её исправить.
Внутренний ввод данных
CRM и бэк-офисные формы, где адрес вводит тот, кому он не принадлежит.
Форма интеграции
Один вызов, одно решение.
- 01
Кто-то вводит адрес
В вашей форме, на вашем домене.
- 02
Ваш сервер вызывает API
На стороне сервера, с вашим ключом. До браузера он не доходит.
- 03
Мы собираем доказательства
Синтаксис, домен, его маршрутизация и проверка ящика там, где она оправдана.
- 04
Приходит ответ
Статус, рекомендация, проверки и коды причин. Или
pendingс интервалом, через который стоит вернуться. - 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-ключом. Аккаунт может держать несколько, каждый привязан к названной интеграции, так что ключ можно ротировать или отозвать, не роняя всех вызывающих. Анонимный доступ не является настраиваемой опцией.
Лимиты
Объём запросов ограничен на каждого вызывающего и каждую исходную сеть. Отказ несёт явную подсказку о повторе, чтобы клиент отступил, а не долбился вслепую.
Что никогда не пересекает границу
Текст ответа удалённого сервера остаётся внутри системы. Он выдаёт детали инфраструктуры получателя, может нести недоверенные управляющие символы и меняется всякий раз, когда провайдер переформулирует сообщение.
Идемпотентность
Повторная проверка того же адреса возвращает тот же вывод под тем же идентификатором, а не делает работу дважды и не пишет для неё вторую запись.
Поставьте это перед своей формой регистрации.
Начните бесплатно. Приходите поговорить, когда объём или закупки потребуют чего-то другого.