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

В этом посте я расскажу, как используя командную строку проверить существует ли определенный адрес email или нет — без отправки письма на этот email. Вам не придется платить за какой-то сервис или отправлять письма. Вы можете это сделать совершенно бесплатно из командной строки столько раз и со столькими адресами сколько вам нужно!

Когда вы отправляете email на адрес user@domain.com, отправляющий почтовый сервер смотрит MX записи на DNS для ‘domain.com’ и если найдена одна или несколько MX записей, отправляющий сервер пытается доставить email на сервер указанный в MX-записи для домена domain.com.

Давайте попробуем проверить, существует ли адрес someuser@gmail.com или нет. Сначала, поищем существуют ли MX-записи для домена получателя, в примере это gmail.com. Мы будем использовать утилиту просмотра DNS которая называется dig она установлена на большинстве Linux систем. В командной строке наберите:

Вывод отобразит что-то вроде такого:

Как вы можете видеть, выведено несколько записей MX и перед каждой из них стоит цифровое значение. Это приоритет. Чем меньше значение, тем выше приоритет. Отправляющий почтовый сервер сначала пробует отправить email на сервер с самым высоким приоритетом. У нас получается это ‘gmail-smtp-in.l.google.com’

Далее, нам надо подключиться к почтовому серверу ‘gmail-smtp-in.l.google.com’ по 25 порту (SMTP) для подтверждения правильности email адреса someuser@gmail.com. Для этого можно использовать telnet или netcat. Обе утилиты доступны в репозиториях большинства систем Linux.

Для начала диалога с сервером наберите HELO. Некоторые сервера так же принимают приветствие EHLO вместо HELO. После приветствия, вам нужно рассказать с какого вы сервера пришли (допустим с mydomain.com).

Наберите: mail from:<name@mydomain.com> чтобы рассказать серверу от чьего имени вы собираетесь с ним говорить

Если сервер ответил “250”, значит можно двигаться дальше. Набирайте: rcpt to:<someuser@gmail.com>

Ответ сервера на эту команду и скажет нам — действительно ли существует такой email как “someuser@gmail.com” или нет.
Если ответ будет “250 OK” значит такой адрес существует.

Если же ответ будет “550” значит запрашиваемый вами аккаунт email не существует.

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

Автор: Mirivlad

Скромный труженик консоли и окошек.

Комментарии: