как проверить корректность адреса электронной почты
Проверка Email на валидность и существование.
Данная форма позволяет проверить Email на формальную валидность и существование на почтовом сервере.
Как проверяется email адрес
Проверка синтаксиса
При запросе подтверждения адреса электронной почты в первую очередь будет выполннена проверка синтаксиса электронной почты, т.е. проверено его соответствие правилам регулярных выражений, таким как:
Доменная часть email должна соответствовать строгим правилам: она должна соответствовать требованиям к имени хоста, состоящему из букв, цифр, дефисов и точек. Кроме того, доменная часть может быть литералом IP-адреса, заключенным в квадратные скобки, хотя это крайне редко встречается.
Проверка доступности почтового сервера
Проверяется доступность MX-записи почтового сервера с помощью DNS-запроса.
Проверка самого ящика на сервере (проверить по SMTP)
Для этого сервис устанавливает соединение с почтовым сервером получателя и отправляет ему команды по аналогии с отправкой письма. Если на сервере нет такого получателя, то при отправке команды «письмо для такого-то мыла»(RCPT TO:) сервер отвечает что такого ящика нет(код 550). Не все сервера отвечают согласно требованиям RFC, например сервера mail.ru на любое письмо отвечает кодом 250, что всё Ok.
Если включена проверка по SMTP: списывается два запроса, адреса в результирующем файле будут упорядочены по smtp-серверам
С примером установления соединения и отправки команд можете ознакомиться здесь. Время проверки каждого е-mail может занимать до 60 секунд.
Некоторые почтовые сервера для защиты от спама используют технологию серых списков (Greylisting). При отправке письма сервер отвечает кодом 450 или 451, что он временно не готов принять письмо. В этом случае необходимо повторно проверить почтовый адрес более чем через 30 минут. При разовой проверке и проверке по API повторный запрос не отправляется. При пакетной обработке файла система будет ждать 30+ минут и повторно опрашивать почтовый сервер. Время обработки файла с почтовыми адресами в этом случе существенно возрастает. Дополнительная оплата при пакетной обработке за повторную проверку не взимается.
Почтовый сервер mail.ru (inbox.ru, bk.ru, list.ru) на любой адрес отвечает, что такой получатель есть и принимают для него полностью письмо. И только потом присылают FBL письмо, что такого адреса не существует. Вам нужно сделать почтовый ящик для таких писем прописать его в mail.ru и обрабатывать отписку для таких адресов.
Пример проверки Email на валидность
Данный пример при выходе из поля проверяет корректность заполнения поля е-mail.
Внимание! Использовать этот пример можно только из приватных сетей, т.к. он использует API_KEY на стороне клиента.
Исходный код этого примера:
Api проверки Email на валидность
format_valid = false
error = ‘Неверный символ в e-mail!’
mx_found = false
error = ‘Email сервер не существует!’
Если сервер защищен с помощью технологии серых списков, будет возвращено:
gray_listing=true
Для получения достоверного результата необходимо вызвать API повторно через час-полтора.
Если все проверки пройдены, возвращается:
message = ’email валидный’
Примеры API запросов проверки email
Пример запроса в формате json: https://htmlweb.ru/json/service/email?email=kdg@a12sd.ru
Пример запроса: https://htmlweb.ru/json/service/email?email=kdg@gmail.com
Пример запроса: https://htmlweb.ru/json/service/email?email=kdg22@htmlweb.ru&smtp_check
Команды SMTP сервера
SMTP (Simple Mail Transfer Protocol — простой протокол передачи почты) — это сетевой протокол, предназначенный для передачи электронной почты в сетях TCP/IP. ESMTP (англ. Extended SMTP) — масштабируемое расширение протокола SMTP. В настоящее время под «протоколом SMTP», как правило, подразумевают ESMTP и его расширения. SMTP использует порт Порты TCP 25.
Протокол SMTP (RFC 821) использует простые текстовые команды в формате ASCII и возвращает трехзначные кодированные ответы с текстовыми сообщениями.
Формат команд в SMTP прост: command [parameter], где command — четырехсимвольная команда протокола SMTP, а parameter — необязательный параметр, определяющий тип данных в команде.
Купить скрипт проверки email адресов
На написание этого скрипта ушло меньше часа времени, а на его отладку я потратил больше месяца. Неоднократно я получал бан от почтовых серверов и потом вытаскивал свой ip из бана. Если Вы не хотите пройти через все злоключения, Вы можете приобрести скрипт проверки почтовых адресов за 8000 рублей (
109$). Код скрипта реализован на PHP, полностью открытый и не использует никаких дополнительных библиотек. Скрипт НЕ будет работать на виртуальном хостинге с закрытым портом SMTP.
На 100% правильный способ проверки адресов электронной почты
Поздравляю. C сегодняшнего дня вы никогда не будете тратить время, подбирая самое оптимальное регулярное выражение для проверки адреса электронной почты. И вы никогда больше не отклоните адрес, который к вашему удивлению оказался действительным.
Хитрость в том, чтобы сразу определить значение слова «действительный».
Мы разработчики — технические ребята, так что наиболее логичным будет проверить на соответствие официальным критериям. Вот некоторые примеры валидных адресов email, которые соответствуют критериям.
Всё, что вы знаете, неправильно
Вышеупомянутый пример проверки с помощью regex во многом игнорирует реальность. Вместо этого я полагаю, что нам нужно задать два вопроса:
Далее мы хотим проверить, что пользователь правильно ввёл свой адрес электронной почты.
Важно, чтобы вы согласились со мной в данном тезисе: это невозможно.
Я знаю, что вы думаете. «Но это поможет, верно?» Ну это как быстрое закрытие холодильника сохранит энергию и поможет бороться с глобальным потеплением. Конечно поможет, если мы хотим стать рабами слова «поможет». Но большинство людей согласятся, что вам светит многообещающая карьера в смирительной рубашке, если вы грохочете консервами ради спасения белых медведей.
Исследуем вопрос
Представим, что мой адрес электронной почты davidgilbertson@example.com. Это 27 нажатий на клавиатуре, которые могут привести к опечатке. Ошибка в любом символе определённо приведёт к вводу неправильного адреса, но необязательно этот адрес будет недействительным.
Даже если бы в окно ярко засветило солнце, меня одолел особенно дикий чих (я страдаю от
@example.com — так вот, я всё равно пройду большинство проверок на «действительный» адрес электронной почты. (Ещё хуже, если система скажет, что адрес недействительный, когда он на самом деле существует! Ради интереса я только что написал на адрес #!$%&’*+-/=?^_`<>|
@example.com — и девушка сказала, что её ужасно бесит, когда её адрес электронной почты считают недействительным. Она также жалеет о покупке домена example.com, но не собирается сдаваться, как и тот парень, купивший milk.com. Мы начали чатиться, и оказалось, что она живёт всего в паре кварталов от меня и тоже собирает винтажные камеры; на следующей неделе мы пойдём играть в гольф. Я думаю, может она и есть та самая. Впрочем, нужно мне заканчивать болтать и продолжить писать статью).
Так какова вероятность, что одна любая опечатка сделает адрес недействительным? Сделаем статистическую модель! Например, вот буква ‘g’. Я скорее допущу опечатку на видимой клавиатуре без нажатого Shift (в модели я учитываю «неизменённые» клавиши). Среди всех клавиш, которые можно нажать на физической клавиатуре, есть только шесть символов, которые в некоторых случаях могут сделать адрес недействительным: []\;, и пробел. 6 из 48. Вероятность 12%.
Но более вероятна опечатка на соседнюю клавишу. Например, нажатие на ‘h’ вместо ‘g’. Так что из списка 117 млн существующих почтовых адресов я вычислил частотность каждого символа, для каждого из них записал, какие клавиши находятся рядом из клавиатуре, и вывел итоговую вероятность того, что опечатка приведёт к недействительному адресу (знаю, что взламывать LinkedIn ради рассуждения о валидации почтовых адресов было немного чересчур, но любое мнение важно подтвердить реальными данными).
Например, символ ‘e’ считается символом с низким риском инвалидации, потому что все окружающие символы оставят адрес электронной почты по-прежнему действительным. Но рядом с ‘p’ есть ‘[’ и ‘;’ на расстоянии нажатия! Так что хотя это более редкий символ, чем ‘e’, но он несёт больший риск превращения адреса в недействительный, если по клавише промахнулись.
Я также принял расчёт относительную ловкость каждого пальца. Мы все знаем, что мизинец — умственно отсталый родственник в семействе пальцев, так что и это учитывается.
Графическое представление модели, показывающей зону опечатки вокруг P, с учётом недостатков мизинца
Теперь предположим, что Силки (фокс) сидит на клавише Shift и я нажимаю неправильную клавишу на клавиатуре. Здесь я рискую попасть по одной из шести опасных клавиш: []\;, и пробел. И опять, они делают адрес недействительным только при определённых условиях. Более вероятно, что нажатая клавиша Shift будет действовать только для букв с одной стороны «собачки» в адресе, так что буква ‘l’ с любой стороны считается особенно опасной.
Все сказанное относится к единственной опечатке, но если я сделаю вторую опечатку, то есть вероятность, что адрес станет опять действительным (например, если добавить \ после \). Конечно, всё это учитывается в модели.
Не стоит говорить, что я приложил такие же усилия в расчёте модели для экранных клавиатур.
Помните также, что если допустить опечатку в символе @, то ошибка будет учтена на самом первом этапе, когда мы проверяем наличие @ как намерение пользователя ввести адрес электронной почты.
Я также встроил в модель немного здравого смысла. Известно, что люди с адресом aol.com неумело набирают текст. Дерилы склонны нажимать все клавиши указательным пальцем, как будто боятся, что каждая кнопка обожжёт руку. Люди с буквой ‘z’ в имени используют механические клавиатуры и редко делают ошибки. Известные жизненные аксиомы.
Я также учёл факт, что любая кнопка перед «собачкой» в адресе игнорируется, и что ‘f’ и ‘h’ во многом одна и та же буква, если хорошенько подумать.
Результат
Итак, приняв в расчёт все факторы, я пропустил 117 миллионов адресов через модель. И вероятность, что некорректный адрес электронной почты будет зафиксирован программой валидации адресов составил…
Боюсь, что у меня нет времени набирать алгоритм, который абсолютно точно существует и неоспоримо безупречен, так что вам придётся поверить мне на слово, что это число никоим образом не выдумано.
Бессмысленно пытаться выяснить, является ли адрес «действительным». Пользователь с гораздо большей вероятностью введёт неправильный и действительный адрес, чем недействительный.
Поэтому лучше потратить своё время буквально на любое другое дело, чем проверять валидность адресов электронной почты.
На 100% правильный способ
Высылайте пользователям письмо активации. (Здесь жирная точка для эффекта).
Я опубликовал продолжение этой статьи в первую очередь о том, как помочь пользователям избежать ввода неправильного адреса электронной почты. С реальным кодом! Вперёд. Читайте.
Если вам кажется, что эта статья бессмысленная и глупая, и вы хотите ещё такого же, оцените мой подкаст «Дэвид читает Википедию». Он именно о том, о чём вы подумали.
Проверка email на валидность. 15 лучших сервисов.
Это неполный список проверки, тем не менее он хорошо демонстрирует, сколько опасностей в непроверенной контактной базе. Например, если контакты собирались в офлайне — через анкеты, опросы или флаеры. Или если в форме регистрации на сайте не был настроен Double Opt In — обязательное подтверждение подписки.
Рассылка по ненадежной контактной базе — это:
Email-рассылки по базе клиентов
Валидация email базы. 15 сервисов для проверки email адресов онлайн
Для валидации списка емейлов существует множество сервисов — мы выбрали лучшие.
1. ZeroBounce
Верификатор принимает файлы в формате TXT и CSV и проводит проверку email на валидность онлайн.
Преимущества:
Цена уменьшается с количеством проверяемых адресов:
В тарифе freemium в месяц можно проверять 100 email адресов онлайн бесплатно.
Возможности:
2. Pabbly
Pabbly Email Verification – один из популярных сервисов для проверки валидности email, который обещает, что вы будете отправлять письма только проверенным пользователям. С его помощью можно понизить коэффициент ошибок, удалив все недействительные, поддельные адреса, дубликаты, и обновить список рассылки. В целом проверка занимает 24-48 часов.
Преимущества:
Цена: 5$ за 1000 контактов, 25$ – 10 тыс., 165$ – 100 тыс., 479$ – 500 тыс., 1199$ – 2.5 млн, 2999$ за очистку 10 млн емейлов.
Возможности:
3. MailGet List Cleaning
MailGet List Cleaning – онлайн-система валидации базы email для предпринимателей. Регистрацию можно пройти только с корпоративной почты. Загружать базу на проверку можно файлами CSV или Excel.
Преимущества: определяет не только то, будет ли письмо доставлено (Hard Bounce), но и предоставляет детальный отчет по множеству других показателей. 9 степеней фильтрации списка с особым вниманием к синтаксическим ошибкам, проверке доменов, спам-ловушкам и т. д; подробный отчет по разным показателям.
Цена – от 4$ за 1000 емейлов, 10 тыс. – 20$, 1 млн – 579$, 10 млн – 2899$.
Возможности:
4. Snov.io
Email Verifier от Snov.io предлагает безопасную проверку email на валидность онлайн и помогает удалить все catch-all и невалидные адреса. Вы можете загрузить список емейлов файлом, воспользоваться веб-приложением или подключить Email Verifier к вашей CRM по API. Помимо этого можно добавлять и верифицировать адреса посредством расширения Email Verifier для Chrome.
Преимущества: индивидуальная проверка, импорт списков адресов для верификации и экспорт результатов проверки в удобном для вас формате, интеграция через API и с CRM-платформами, большой выбор тарифов.
Цена: 100 имейлов в месяц – бесплатно. Snov.io предлагает четыре помесячных тарифных плана для проверки почты на валидность:
Также доступны годовые тарифы.
Сервис проводит проверку:
5. QuickEmailVerification
QuickEmailVerification – валидатор проводит очистку email онлайн.
Преимущества:
Цена: в день можно бесплатно проверить 100 email на валидность онлайн. Платный тариф для одноразовой проверки начинается с 4$ за 500 кредитов (1 кредит = 1 проверка электронной почты) и уменьшается с увеличением объема проверки. Оплата взимается по мере использования, например, вам нужно периодически проводить проверку 1000 почтовых ящиков. Так, вы единоразово заплатили 35$ и можете прогонять весь этот контактный список 5 раз в любое время, кредиты активны до тех пор, пока вы их не израсходуете. Есть также тариф с ежемесячной оплатой, сумма зависит от количества проверяемых email в день: ежедневная проверка 500 кредитов обойдется 25$ в месяц, 5000 – 160$, а 50 тыс. – 900$.
Возможности валидации:
6. Mailvalidator
Онлайн-платформа для контроля качества контактной базы. Список емейлов может загружаться в нее файлом, кроме того, возможно подключение непосредственно к сервису по API. Предлагается 2 вида проверки: экспресс-проверка для емейл-адресов с известной почтовой историей и полная проверка для всех остальных. Результат экспресс-проверки: список валидных и условно-валидных email. Полная проверка покажет, какие из условно-валидных емейлов действительно существуют.
Особенности:
Преимущества: визуализированные отчеты проверки емейлов в виде графиков, персональные рекомендации по улучшению качества контактной базы, русскоязычный интерфейс.
Цена: экспресс проверка от 0,25 руб. за 1 емейл в базе до 10 тыс. адресов, до 100.тыс. – 0,20 руб./емейл, до 500 тыс. – 0,15 руб./емейл. Для полной проверки к стоимости экспресс + 0,18 руб., 0,14 руб., 0,10 руб. соответственно.
В диагностику входит:
7. MailboxValidator
Валидатор email с возможностью проверки настройки записей MX.
Преимущество: оригинальная система числовой оценки контакта. Как правило, валидаторы разбивают контактную базу на 3 основные группы:
Здесь та же система, но с более детальной градацией: все контакты с оценкой
Таким образом, вы сами определяете границы трастовости контакта. Отчеты выгружаются в CSV-формате.
Особенности:
Цена: платная диагностика 1000 контактов – 19.95$, или 0,02$ за контакт, 50 тыс. – 149,95$ или 0,003$/контакт, 1 млн – 699,95$ или 0,0007/контакт.
8. BriteVerify
BriteVerify стремится максимально упростить процесс валидации контактной базы. Для этого, например, список контактов можно просто перетащить в окно проверки по принципу drag and drop, или импортировать его непосредственно из ESP.
Преимущества: Есть возможность подключения по API для проверки емейлов на валидность в формах подписки и других местах сбора контактов. Поддержка в телефонном режиме в США и Великобритании.
Цена: 1000 емейлов за 10$, 500 тыс. – 3000$, 1 млн – 5000$. Бесплатный пробный период возможен по запросу.
Возможности валидации:
9. Mailfloss
Mailfloss интегрирован с MailChimp, Campaign Monitor, Constant Contact, Ontraport, ConvertKit, Aweber и Active Campaign и др. (через них же возможно запросить бесплатную пробную версию). Пара кликов – и mailfloss начинает каждый день проверять валидность email из аккаунта в одном из этих ESP.
Преимущества: не нужно выгружать контакты из ESP, потом загружать их в валидатор емейлов, потом убирать невалидные адреса вручную, потом опять загружать уже очищенную базу в ESP.
Цена: mailfloss предлагает три тарифных плана – 17$, 49$ и 200$ за 10 тыс., 25 тыс. и 125 тыс. проверенных емейлов в месяц соответственно.
Во все пакеты входят такие услуги:
10. EmailMarker
EmailMarker – один из самых старых и проверенных сервисов валидации email. Проверка контактной базы проходит в режиме реального времени по API.
Преимущества: круглосуточная поддержка по почте, телефону или в чате, Загружает списки в CSV, TXT, XLS, XLSX.
Цена валидации емейла варьируется в зависимости от количества: 150 адресов – бесплатно, 1000 – 3$, 10 тыс. – 21$, 25 тыс. – 61$, 100 тыс. – 161$, 1 млн – 589$.
11. Xverify
Xverify – многопрофильная система для валидации B2B и B2C емейлов, физических адресов и телефонных номеров.
Преимущества: возможность подключения по API для проверки емейлов в формах подписки и других местах сбора контактов, круглосуточная поддержка.
Цена: 100 контактов – бесплатно. В платных тарифах: база до 5000 контактов – 0,01$ за 1 email, до 250тыс. – 0,004$, до 1 млн – 0,002$.
В проверку валидности почты входит:
12. Email Сhecker
Email Checker проводит проверку email адресов онлайн по API, обеспечивает правильность емейлов и их активность.
Преимущества: опционная возможность автоматически корректировать вводимые емейлы, удаляя недопустимые символы (пробелы и слэши).
Цена: 14$ за 1000 контактов, 49$ – 5 тыс., 299$ – 100 тыс., 1249$ – 1 млн.
13. BulkEmailVerifier
BulkEmailVerifier – сервис проверки email адресов, который поможет быстро и безопасно очистить список. Для этого нужно просто залогиниться на сайте, загрузить базу, и сервис автоматически удалит все “плохие” адреса. Принимает списки в CSV, TXT форматах, а выгружает отчеты в CSV.
Преимущества: инфраструктура сервиса позволяет проверять адреса со скоростью более 100 000 емейлов в час.
Цена: от 25$ за 3000 контактов.
14. Email Verifier
Email Verifier предоставляет услуги по очистке контактной базы для малых и крупных компаний.
Преимущества: разработан двенадцатиступенчатый механизм верификации, который гарантирует полную безопасность отправителя.
Цена: 4$ за 500 емейлов, 32$ за 5 тыс., 150$ за 50 тыс., 1050$ за 1 млн.
Проверка email на валидность включает:
15. eSputnik
eSputnik – это прежде всего система автоматизации коммуникации с клиентами, где при загрузке контактной базы мы бесплатно предоставляем возможность проверить почту на валидность:
Загрузить список на проверку можно в любом удобном формате: xls, xlsx, csv или txt.
Общайтесь эффективно с клиентами
Для качественно собранной контактной базы этого вполне достаточно. Но иногда бывает нужна дополнительная проверка почты на валидность – например, контакты собирались давно и могли устареть. Для полной уверенности в идеальном состоянии базы мы сотрудничаем с Mailvalidator. Вы можете заказать полную проверку у нашей службы поддержки.
А главное: в eSputnik вы можете совершенно бесплатно получить форму подписки и настроить Double Opt In, чтобы раз и навсегда застраховаться от проблем с невалидными email. Более детально о том, как поддерживать базу емейлов в рабочем состоянии, мы рассказывали в этом материале.