Проверка email на существование

Проверка email на существование

Проверка Email на валидность и существование.

Данная форма позволяет проверить Email на валидность.

Как проверяется email адрес

Проверка синтаксиса

При запросе подтверждения адреса электронной почты API email будет в первую очередь выполнять стандартную проверку синтаксиса электронной почты, следовательно, проверять его соответствие правилам регулярных выражений, таким как:

Формат адресов электронной почты – local-part @ domain, где local-part может иметь длину до 64 символов, а имя домена может содержать не более 253 символов. Формальные определения приведены в RFC 5322 и RFC 5321 – с более читаемой формой, приведенной в информационном RFC 3696 .

Локальная часть состоит из прописные и строчные латинские буквы (A – Z, a – z) (ASCII: 65–90, 97–122), Цифры от 0 до 9 (ASCII: 48–57), специальные символы: # – _

! $ & ‘() * +,; =: и %20, точка, точка, полная остановка), ASCII 46, при условии, что он не является первым или последним символом, а также при условии, что он не появляется последовательно (например, John..Doe @ example.com не допускается).

Доменная часть email должна соответствовать строгим правилам: она должна соответствовать требованиям к имени хоста, состоящему из букв, цифр, дефисов и точек. Кроме того, доменная часть может быть литералом IP-адреса, заключенным в квадратные скобки, хотя это редко встречается, за исключением спама в электронной почте.

Проверка доступности почтового сервера

Проверяется доступность MX-записи почтового сервера с помощью DNS-запроса.

Проверка самого ящика на сервере(проверить по SMTP)

Для этого сервис устанавливает соединение с почтовым сервером получателя и отправляет ему команды по аналогии с отправкой письма. Если на сервере нет такого получателя, то при отправке команды “письмо для такого-то мыла”(RCPT TO:) сервер отвечает что такого ящика нет(код 550). Не все сервера отвечают согласно требованиям RFC, например сервер mail.ru на любое письмо отвечает кодом 250, что всё Ok.

С примером установления соединения и отправки команд можете ознакомиться здесь. Время проверки каждого е-mail может занимать до 60 секунд.

Некоторые почтовые сервера для защиты от спама используют технологию серых списков (Greylisting). При отправке письма сервер отвечает кодом 450 или 451, что он временно не готов принять письмо. В этом случае необходимо повторно проверить почтовый адрес более чем через 30 минут. При разовой проверке и проверке по API повторный запрос не отправляется. При пакетной обработке файла система будет ждать 30+ минут и повторно опрашивать почтовый сервер. Время обработки файла с почтовыми адресами в этом случе существенно возрастает. Дополнительная оплата при пакетной обработке за повторную проверку не взимается.

Почтовый сервер mail.ru (inbox.ru, bk.ru, list.ru) на любой адрес отвечает, что такой получатель есть и принимают для него полностью письмо. И только потом присылают FBL письмо, что такого адреса не существует. Используйте отписку для таких адресов.

Api проверки Email на валидность

Если Вы хотите проверить непосредственное наличие почтового ящика на сервере с помощью SMTP-запроса, добавьте параметр smtp_check . Время проверки может занять до 20 секунд. За проверку по smtp с вас будет списан дополнительный запрос. Пример:

В ответе возможны следующие поля:
email – полный запрошенный e-mail
user – часть email до символа @
domain – домен

format_val > error = ‘Неверный символ в e-mail!’

free – почта на бесплатном почтовом сервере, типа yandex.ru или gmail.com

disposable = true – почта на одноразовом почтовом сервисе типа mailinator.com, trashmail.com
message = ‘Email одноразовый’;

mx_found = false
error = ‘Email сервер не существует!’

role=true – это адрес, который обычно указывает на функцию (например, «поддержка», «администратор почты»), а не на отдельное лицо или имя.

Если передан параметр smtp_check , то дополнительно возвращается:

mx_records – список почтовых серверов
smtp_check = true или false, если false, то в error код ответа SMTP-сервера

Если все проверки пройдены, возвращается:
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 — необязательный параметр, определяющий тип данных в команде.

EHLO сервер_отправитель> или устаревшая HELO хост_отправитель – Открывам соединение и сообщаем серверу имя отправляющего сервера (хоста)
MAIL FROM: адрес_отправителя – Email-адрес отправителя.
RCPT TO: адрес_получателя – Email-адрес получателя (recipient)
DATA – После этой команды передается тело сообщения оканчивающееся новой строкой с единственным символом “точка” (rn.rn), после этого восстанавливается командный режим
RSET – Прервать сообщение. При этом все ранее посланные команды — MAIL, RCPT и DATA будут аннулированы.
HELP [команда] – Краткая справка по команде или список поддерживаемых команд
QUIT – Завершение сеанса SMTP
VRFY имя_пользователя – Проверка имени пользователя (Команда обычно запрещена в целях безопасности)
EXPN имя_пользователя – Показывает список всех алиасов пользователя (списки рассылки по Email-адресу) (Команда обычно запрещена в целях безопасности)
AUTH – Показывает серверу механизм аутентификации. RFC 4954 (пришел на смену RFC 2554).

Читать еще:  Как сменить пароль от Apple ID

Купить скрипт проверки email адресов

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

128$). Код скрипта реализован на PHP, полностью открытый и не использует никаких дополнительных библиотек. Скрипт НЕ будет работать на виртуальном хостинге с закрытым портом SMTP.

    Соглашение по использованию платной версии:

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

РегистрацияВойтиВойти через VKВойти через FBВойти через Google

Пошаговая инструкция по проверке email на существование

25 января 2019 – 00:50

Низкая активность подписчиков — одна из больных тем для email-маркетологов. Причин масса: неинтересный контент, банальные темы писем или непривлекательный дизайн. Но самая тривиальная причина, от которой не застрахован никто, — несуществующие адреса.

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

Зачем проверять email на существование

Проверять валидность адреса — то есть существование и возможность отправлять на него письма — полезно, если вы хотите:

  1. Снизить процент жалоб на спам, возвратов и ошибок доставки.
  2. Избегать спам-ловушек и не попадать в чёрные списки.
  3. Повысить репутацию в сервисе рассылок.
  4. Сократить затраты на отправку рассылок.

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

Как невалидные email-адреса появляются в базе

Самый очевидный источник невалидных адресов — купленная база подписчиков. В честно собранной базе предпосылки обычно таковы:

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

Для примера возьмем пользователя по имени Виталий. Его адрес — vitaly@example.com. С английским у Виталия не очень, и при подписке на рассылку он добавил букву i и написал vitaliy@example.com.

А теперь представьте, что vitaliy@example.com — email другого Виталия. Он начинает получать ваши письма и скорее всего отправляет их в спам.

2. Если у вас старая база, в ней могут быть удалённые или заблокированные адреса.

3. Бывают случаи, когда люди вводят при регистрации email из случайного набора букв. В некоторых случаях это позволяет получить доступ к закрытым материалам (раздаткам, исследованиям и так далее), не «засветив» собственный адрес. Если вы не используете double opt-in, ваша репутация пострадает.

4. Конкуренты могут «бомбить» форму подписки ботами или спам-ловушками, чтобы подпортить статистику. Такое случается, хотя и редко.

Способы проверки существования email

Есть по меньшей мере три способа понять, ввёл ли подписчик реальный email. У каждого есть и плюсы, и минусы. Выбор за вами.

Онлайн-сервисы

Подходят, если у вас небольшая база. Работают элементарно: вы пишете адрес, нажимаете кнопку «Проверить» и тут же получаете ответ. Вот несколько неплохих сервисов:

Плюсы: регистрация не нужна, моментальный результат.

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

Коммерческие валидаторы

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

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

Вот список популярных валидаторов:

Плюсы: много настроек, интеграция с сайтом и сервисом рассылок, подробная статистика. Проверяют не только существование email, но и его репутацию.

Минусы: нужна регистрация, ограниченные возможности в бесплатных тарифах.

Вот как выглядит результат проверки базы в Mailvalidator:

С помощью кода на сайте

Когда пользователь вводит email, код на сайте проверяет корректность синтаксиса (есть ли «@», нет ли пробелов или запрещённых символов). Например, это можно сделать с помощью регулярных выражений на Python.

Вот как это реализовали на сайте Arzamas.academy:

Плюсы: пользователь сразу видит, что допустил ошибку, а вы не получаете очевидно несуществующий адрес в базу.

Минусы. Такая проверка «спасёт», когда пользователь не переключил раскладку клавиатуры или вместо email ввёл своё имя. А если он сделал опечатку или ради шутки ввёл vasya_pupkin@gmail.com — код это пропустит.

Читать еще:  Включаем AHCI режим в BIOS

Заключение

Самый достоверный способ проверить, существует ли email, — отправить на него письмо. Но не пренебрегайте сервисами для валидации: они избавят от очевидно сомнительных адресов. А остальные «мёртвые души» объявятся уже после отправки первого письма. Радует, что после первичной валидации их окажется гораздо меньше, чем могло быть.

Стоит отметить, что сейчас email-маркетологам доступны сервисы для лидогенерации, которые не пропускают невалидные адреса в базу. Например, LeadPlan проверяет их на соответствие стандартам IETF с помощью специальных регулярных выражений. Попробовать сервис можно бесплатно.

Но все равно не забывайте о double opt-in, или двухэтапном подтверждении подписки. Это удобный способ отправлять письма только на реальные адреса. Если адрес попал к вам по ошибке, человек просто не будет подтверждать подписку, а вы не станете отправлять ему рассылку. Вот пример письма с подтверждением подписки от EmailSoldiers.

Как вы проверяете адреса на существование? И проверяете ли вообще? Поделитесь опытом в комментариях и подпишитесь на нашу рассылку — вам ведь интересно, как выглядит наше письмо-подтверждение?

Проверка email на валидность

Удалите несуществующие email адреса для повышения доверия почтовых серверов к вашим рассылкам

Проверка cуществования email адреса – это просто

Как работает ePochta Verifier?

Синтаксическая проверка

Проверка существования email начинается с проверки на соответствие стандартным правилам написания. Из списка исключаются те адреса, которые не соответствуют стандартам. Например, будут удалены такие адреса, как ann#mail.ru, john!@$mail.com.

После данного типа проверки ваши списки рассылки не будут содержать адреса с опечатками или те, которые были умышленно неправильно написанные.

Проверка существования доменного имени адресата

Если не существует домена, то и электронный адрес заведомо не существует. Следовательно, он не допускается до третьего этапа проверки.

Если адрес получателя ann@mail.ru синтаксически верно написан и домен mail.ru существует, то имеет смысл проверять существование конкретного адреса в домене.

Последний шаг проверки адреса –
анализ ответа почтового сервера

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

В результате этой эффективной трехступенчатой проверки существования email-адресов, ePochta Verifier позволяет отсеять максимальное количество несуществующих адресов электронной почты, а также предотвратить удаление тех, которые являются реальными.

Программа дает возможность проверить, зарегистрирован ли пользователь с данным адресом на Facebook. Если такой пользователь существует, программа извлекает все данные с его страницы. По окончанию проверки вы получаете полную информацию, которая доступна на личной странице владельца адреса в Facebook.

Почему клиенты любят ePochta Verifier

Вера, «WEDGE»

Darmenov Duman, «Darmenov»

Евгений, «Азбука Ремонта»

Евгений, маркетолог

Роман Иванов

Купить

Скачать

Зачем проверять email адреса?

После проведения маркетингового исследования и получения списка электронных адресов одной из важных задач для обеспечения эффективного email-маркетинга является проверка email адресов на существование. Это поможет вам избежать отправки сообщений на несуществующие электронные адреса.

Как добавить адреса в ePochta Verifier?

Список адресатов может быть импортирован в программу из других приложений ePochta, текстового файла или буфера обмена Windows. После этого вам останется лишь нажать «Проверить» для получения результата.

Как осуществляется проверка email-адресов?

Программа использует три метода проверки электронных адресов на правильность, что позволяет проверить email адреса максимально быстро и качественно. Все процедуры производятся в многопоточном режиме и используют все возможности Интернет-канала.

Что такое синтаксическая проверка?

Из списка исключаются адреса, которые не соответствуют стандарту. Например, будут удалены такие адреса, как ann#mail.ru, john!@$mail.com.

Что такое проверка существования доменного имени?

Если не существует домена, то и электронный адрес заведомо не существует. Следовательно, он не допускается до третьего этапа проверки. Если адрес получателя ann@mail.ru и домен mail.ru существует, то имеет смысл проверять существование конкретного адреса в домене.

Как происходит окончательная проверка email адреса?

Тщательная проверка существования email адреса, прошедшего предыдущие два этапа.
Программа ищет соответствующий домену SMTP-сервер и проверяет существование пользователя. Этот этап возможен если у вас открыт порт 25.

Какова вероятность очистки списка?

Таким образом, в списке электронных адресов остаются только те, которые действительно существуют (при прохождении всех трёх этапов проверки вероятность очистить список от несуществующих адресов примерно 70%. Ограничение накладывают некоторые сервера, которые не поддерживают проверку email на подлинность)

Проверка e-mail адресов на существование: yandex, gmail, mail.ru, mail.com и др.

By ibred | 16.05.2018 | Comments 0 Comment

В первой части статьи Универсальный чекер e-mail почты на валидность. Часть 1. мы говорили о методе проверке почтовых адресов к которым у Вас есть доступ (по паре логин:пароль). Сегодня мы продолжим данную тему и расскажем, как проверить почту на существование с помощью ZennoPoster.

Мы рассмотрим с Вами 4 пункта (условно их 3):
1. Проверить синтаксис написания почтового адреса по формату.
2. Проверить существование домена.
3. Подключиться к SMTP серверу проверяемого ящика и совершить попытку отправки письма.
3.1 Проверить существование email адреса через почтовый сервис.

Читать еще:  Место установки игр Стима

Зачем это нужно?

Отправляя письма на несуществующие почтовые адреса, ваши письма будут определены как «нежелательные», что повлечёт за собой санкции со стороны почтового хостинга — бóльшая часть писем будет автоматически отправляться в папку спам или отклоняться вовсе.

И именно для того чтобы предотвратить появления в Вашей базе невалидных email-адресов, необходимо провести вышеописанные проверки.

Синтаксическая проверка

Проверка существования email адреса начинается с соответствия стандартам написания, согласно RFC 5322.

Это регулярное выражение для канонических адресов электронной почты:

Проверка существования домена

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

Нас интересует не столько статус домена, сколько наличие MX (mail exchanger) записей в DNS. которые указывают серверы, на которые нужно отправлять электронную почту, предназначенную для адресов в данном домене. Если они не прописаны, значит и проверяемый нами почтовый ящик не существует.

Данную проверку можно осуществить разными способами. Я поделюсь с Вами четырьмя:

  • С помощью библиотеки ARSoft.Tools.Net.Dns
  • Запрос к dns.google.com
  • Утилита dig
  • Утилита nslookup

(Шаблон с примерами будет в комплекте)

Я воспользуюсь 4-им способом, так он мне наиболее привычен.

Стандартный кубик запуска программ не позволяет сохранить результат выполнения в переменную, поэтому будем выполнять её через C# код:

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

Финальный шаг — подключаемся к SMTP серверу и имитируем отправку сообщения на проверяемый ящик. Если вернётся ответ 250 — ящик существует, 550 — к сожалению, такого адреса нет. Данный способ не является панацеей т.к. не все почтовые сервисы возвращают корректный ответ на данную команду, к ним относятся Mail Ru, Mail.com, Hotmail, Yahoo (о них мы поговорим отдельно, чуть ниже). Но с такими популярными службами, как Яндекс и Gmail проблем не возникает.

Итак, чтобы начать, необходимо подключиться к одному из почтовых серверов по 25 порту, которые хранятся у нас в списке «MX».

Далее мы говорим ему привет с помощью команды:

Где второе — это название домена с которого Вы обращаетесь, может быть любым.

После чего мы посылаем команду:

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

И вот здесь мы ждём ответ, 250 — good, 550 — bad.

Код выглядит следующим образом:

С этим разобрались, супер!

Когда способ через SMTP сервер не работает — проверяем существование E-mail адреса через почтовый сервис

Вернёмся к почтовым сервисам, где данная проверка через SMTP сервер не работает (Mail Ru, Mail.com, Hotmail, Yahoo). Как же быть в таком случае?

На сайте КАЖДОГО почтового сервиса есть возможность восстановления пароля иили проверка занятности адреса при регистрации, этими способами на примере двух сайтов (mail.ru и mail.com) мы и воспользуемся.

Переходим на страницу восстановления пароля: https://e.mail.ru/password/restore/

Перед нами несложная форма — то, что нужно!

В чекере важна скорость, поэтому работа через браузер нам не подходит. Для создания шаблона на запросах на потребуется отследить трафик при совершении нужных нам действий, для этого активируем вкладку «Трафик» или запускаем стороннюю программу-сниффер.

Введём заведомо несуществующий логин и посмотрим, в каком виде нам придёт ответ.

Ключевой запрос, который нам нужен: https://e.mail.ru/api/v1/user/password/restore

Все необходимые куки мы можем получить при первом запросе к странице восстановления.

Остается только перенести необходимые аргументы в запрос: X-Requested-With, Referer, X-Request-Id; Последний мы сгенерируем с помощью кода:

Последний шаг — формирование данных, которые необходимо передать в POST запросе. Делаем также по примеру:

Меняем статичные данные на переменные: tab-time (unix время) и e-mail, предварительно обработав UrlEncode.

Отправляем запрос и получаем примерно такой ответ:

Строчка «not_exist» означает, что ящика не существует, по ней и будем проверять все остальные почтовые ящики.

Не так уж и сложно, не правда ли?

Если всё-таки у Вас возникли сложности — пишите в обсуждении данной темы на форуме.

Переходим на страницу восстановления пароля: https://password.mail.com/passwordrecovery/

К сожалению, данная форма нам не подходит из-за каптчи т.к. это сильно будет тормозить процесс.

Воспользуемся вторым способом — проверкой занятости никнейма через форму регистрации: https://service.mail.com/registration.html

Рядом с полем ввода никнейма есть кнопка для проверки его на занятость, по клику на которую вылетит соответствующее уведомление:

Если же E-mail существует, появится следующий текст: [email protected] is not available, please choose one of the following

Отследим запросы. Ключевой запрос выглядит так:

Нужные куки так же получаем после первого GET запроса к странице и копируем дополнительные заголовки: Wicket-Ajax, Wicket-FocusedElementId: id20

Данные для отправки выглядят следующим образом: [email protected]&

Значение zXXXXXXXX является динамическим, поэтому его, как и почту, необходимо заменить на переменную.

Применим xPath выражение, чтобы его достать: «.//*/span[contains(@class, ‘EmailAddress’)]/input»

Данные, которые передаются в URL (после знака вопроса) также являются динамическими и хранятся в аргументе onclick того же поля, откуда мы забрали нужно zXXXXXX значение.

Отправляем запрос, парсим текст оповещения и определяем, существует почта или нет.

Готовый шаблон Вы можете скачать в теме данной статьи, на форуме.