Проверка email в реальном времени
Проверяйте email-адрес при регистрации
Проверьте введенный адрес, пока человек еще может исправить его в форме. Ваш сервер отправляет адрес в Emvero, а приложение использует ответ, чтобы продолжить регистрацию, запросить подтверждение по email или показать ошибку.
Результат может быть готов сразу или потребовать ожидания. Заранее решите, сколько форма будет ждать и что произойдет, если проверка не успеет завершиться.
Серверный API · Без отправки писем
Как форма проверяет адрес
Браузер может проверить формат адреса и сразу показать ошибку. Чтобы получить сведения о домене и приеме почты, ваш сервер обращается к API Emvero. Такой запрос можно использовать при регистрации, оформлении заказа или отправке заявки.
Создайте API-ключ в аккаунте и храните его на сервере: ключ не должен попадать в браузерный код. Пример ниже запускает полную проверку, которая используется по умолчанию:
curl -sS https://api.emvero.tech/v1/verifications \
-H "Authorization: Bearer emv_your_credential" \
-H "Content-Type: application/json" \
-d '{"email":"ada@example.com"}'
В ответе есть идентификатор проверки id, статус status, рекомендация action, данные об этапах проверки checks и коды причин reason_codes. Ниже приведены отдельные поля примерного ответа. Это иллюстрация, а не результат реальной проверки example.com:
{
"id": "5f0b6f3e-1a4c-4a1f-9d2e-8f7b3c2a1d90",
"status": "risky",
"action": "allow_with_email_confirmation",
"checks": { "syntax": "valid", "mail_routing": "valid", "accept_all": "yes" },
"reason_codes": ["ACCEPT_ALL_DOMAIN"]
}
В этом примере домен принимает любого получателя: такое поведение называют catch-all. Поэтому согласие почтового сервера принять адрес не подтверждает существование отдельного ящика. Статус risky отражает этот риск, а действие allow_with_email_confirmation рекомендует продолжить с подтверждением по email.
Статус и рекомендация отвечают на разные вопросы. При других свидетельствах тот же статус risky может сопровождаться другим действием. Ваше приложение может следовать рекомендации или применять собственные правила на основе данных проверки и кодов причин. Полный состав ответа описан на странице API проверки email.
Как использовать ответ в форме
Поле action содержит рекомендацию: продолжить процесс, запросить подтверждение или отклонить адрес. Если в поле status пришло pending, проверка еще идет. Заранее определите, что форма будет делать в каждом случае.
| Значение в ответе API | Возможное действие формы |
|---|---|
allow в поле action |
Продолжить регистрацию или оформление заказа. |
allow_with_email_confirmation в поле action |
Продолжить и попросить человека подтвердить email-адрес. |
reject в поле action |
Попросить исправить адрес или указать другой. |
pending в поле status |
Ждать до заданного предела. Если результат не готов, применить свое правило. |
Итоговый статус unknown означает, что данных не хватило для вывода об адресе. Таймаут или отсутствие сведений о получателе не дают оснований объявлять ящик недействительным. Поле confidence оценивает силу свидетельств от 0 до 1; это не вероятность доставки.
Если обнаружена ошибка адреса, покажите ее, пока человек еще может исправить ввод в форме. Как связать проверку в браузере, запрос с сервера и создание аккаунта, объясняет руководство по проверке формы регистрации.
Что делать, если результат еще не готов
Почтовый сервер может отвечать медленно или временно отклонить запрос. Если Emvero еще собирает сведения о получателе, API возвращает pending. В ответе есть идентификатор проверки и время до следующего запроса в миллисекундах. Ниже показаны эти поля:
{
"id": "5f0b6f3e-1a4c-4a1f-9d2e-8f7b3c2a1d90",
"status": "pending",
"retry_after_ms": 2000
}
Ваш сервер должен подождать указанный интервал, затем вызвать GET /v1/verifications/{id} с тем же ключом авторизации. Подставьте идентификатор из ответа. Пока статус остается pending, повторяйте запросы с учетом каждого нового интервала и своего предела ожидания. Emvero не отправляет callback: отложенный результат нужно получать запросом к API.
Если время ожидания в форме истекло, примените заранее выбранное правило. Можно приостановить создание аккаунта до итогового ответа или продолжить регистрацию с подтверждением по email, а результат получить позже. Выбор зависит от требований вашего приложения.
Ни истечение времени ожидания, ни ошибка API не означают undeliverable. Это разные состояния, и приложение должно обрабатывать их отдельно. Порядок получения отложенного результата описан в документации по pending.
Когда нужно отдельное письмо подтверждения
Emvero проверяет формат адреса, домен и почтовый маршрут. Полная проверка также может получить сведения о конкретном получателе, если почтовый сервер их предоставляет. SMTP-проба заканчивается до передачи сообщения, поэтому письмо не отправляется. Сервер может не раскрывать сведения о ящике; даже положительный ответ не гарантирует будущую доставку.
Если нужно убедиться, что человек контролирует ящик, ваше приложение должно отдельно отправить письмо со ссылкой или кодом подтверждения. Проверка адреса этого не устанавливает и не заменяет защиту от ботов, повторных регистраций и мошенничества.
Для уже сохраненных адресов используйте массовую проверку: она возвращает те же поля API, но список обрабатывается в вашем скрипте или приложении.
Вопросы
Часто спрашивают.
Что такое проверка email в реальном времени?
Это проверка адреса, пока человек заполняет форму регистрации, заказа или заявки. Ваш сервер передает адрес в API Emvero, а приложение обрабатывает результат. Он может быть готов сразу; если проверка еще идет, сервер запрашивает результат позже.
Как проверить адрес при регистрации?
Создайте API-ключ в аккаунте Emvero и вызовите API со своего сервера до окончательного создания аккаунта пользователя. Поле status описывает результат, а action содержит рекомендацию для формы. Храните ключ на сервере и задайте предел ожидания на случай ответа pending.
Что делать, если API вернул pending?
Ваш сервер должен выдержать интервал, указанный в retry_after_ms, и вызвать GET /v1/verifications/{id} с тем же ключом. Пока проверка идет, форма может ждать в пределах заданного вами времени. Если предел достигнут, примените свое правило: например, продолжите регистрацию с подтверждением по email и получите результат позже. Задержка не доказывает, что адрес недействителен.
Проверка отправляет письмо?
Нет. Полная проверка может обратиться к почтовому серверу получателя, но SMTP-сессия заканчивается до стадии DATA. Сообщение не отправляется. Если нужно убедиться, что человек контролирует ящик, ваше приложение должно отдельно отправить письмо подтверждения.
Поможет ли проверка выявить фиктивные регистрации?
Она может обнаружить ошибки формата, проблемы с приемом почты и принадлежность домена к сервисам временной почты. Эти сведения помогают обработать адрес, но не устанавливают личность человека, который заполнил форму. Для защиты от ботов и мошенничества нужны отдельные меры.
Прямое сравнение
Реальное время против массовой проверки
В реальном времени адрес проверяется, пока человек заполняет форму и может исправить ошибку. Массовая проверка обрабатывает уже сохраненный список через тот же API.
Грейлистинг
Сервер временно отклоняет SMTP-попытку и ожидает повторную позже. Прием после повтора не гарантирован.
Добавьте проверку в форму
Начните с запроса к API
Создайте аккаунт и подтвердите email-адрес, чтобы получить 1 000 кредитов без банковской карты. Их хватит на 100 полных проверок или до 500 проверок домена. Создайте API-ключ в аккаунте и подключите проверку к своей форме.