SMTP (Simple Mail Transfer Protocol) — это сетевой протокол, предназначенный для отправки электронной почты. Клиент и SMTP почтовый сервер обмениваются информацией пока соединение не будет закрыто.
Задача
Существует задача по проверке списка email-ов на валидность (существует ли указанный адрес). Очевидным способом ее решить, это послать по этим адресам письма и если сервер вернет ошибку типа «Mail delivery failed» значит таких адресов не существует. Однако почтовые серверы не любят подобные действия и могут забанить аккаунт.
Поиск решения
Потратил некоторое количество времени на поиск простого решения в функциональности smtp (тестировал для mail.ru и yandex.ru).
Существует две команды, которые могут быть выполнены без посылки письма серверу, это:
VRFY — команда для проверки существует ли пользователь с таким именем, если существует, то код возврата содержит строчку с данными пользователя.
EXPN- команда для проверки членов почтовой группы, в случае удачного запроса вернет списко членов группы.
Обе команды должны поддерживаться сервером, однако из-за большой активности спамеров проверяющих огромные списки email-ов, на большинстве почтовиков более не работают.
http://stackoverflow.com/questions/3883518/can-i-check-if-an-email-address-exists-using-net
http://www.spamresource.com/2007/01/whatever-happened-to-vrfy.html
Что может предложить HumanEmulator?
К счастью web интерфейс сайтов позволяет сколько угодно запрашивать данные. Например если списки ваших email-ов относятся к серверам mail.ru, то можно воспользоваться Mail.ru агентом. В Агенте существует форма поиска пользователей зарегистрированных в mail.ru, а значит наша цель будет достигнута. Вводим значения в форму и парсим.