В этом посте я расскажу, как используя командную строку проверить существует ли определенный адрес email или нет — без отправки письма на этот email. Вам не придется платить за какой-то сервис или отправлять письма. Вы можете это сделать совершенно бесплатно из командной строки столько раз и со столькими адресами сколько вам нужно!
Когда вы отправляете email на адрес user@domain.com, отправляющий почтовый сервер смотрит MX записи на DNS для ‘domain.com’ и если найдена одна или несколько MX записей, отправляющий сервер пытается доставить email на сервер указанный в MX-записи для домена domain.com.
Давайте попробуем проверить, существует ли адрес someuser@gmail.com или нет. Сначала, поищем существуют ли MX-записи для домена получателя, в примере это gmail.com. Мы будем использовать утилиту просмотра DNS которая называется dig она установлена на большинстве Linux систем. В командной строке наберите:
$ dig gmail.com MX
Вывод отобразит что-то вроде такого:
; > DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 > gmail.com MX @8.8.8.8 ;; global options: +cmd ;; Got answer: ;; - > >HEADERКак вы можете видеть, выведено несколько записей MX и перед каждой из них стоит цифровое значение. Это приоритет. Чем меньше значение, тем выше приоритет. Отправляющий почтовый сервер сначала пробует отправить email на сервер с самым высоким приоритетом. У нас получается это ‘gmail-smtp-in.l.google.com’
Далее, нам надо подключиться к почтовому серверу ‘gmail-smtp-in.l.google.com’ по 25 порту (SMTP) для подтверждения правильности email адреса someuser@gmail.com. Для этого можно использовать telnet или netcat. Обе утилиты доступны в репозиториях большинства систем Linux.
$ nc gmail-smtp-in.l.google.com 25 # или telent gmail-smtp-in.l.google.com 25 220 mx.google.com ESMTP a12si21630825itb.5 - gsmtpДля начала диалога с сервером наберите HELO. Некоторые сервера так же принимают приветствие EHLO вместо HELO. После приветствия, вам нужно рассказать с какого вы сервера пришли (допустим с mydomain.com).
HELO mydomain.com 250 mx.google.com at your serviceНаберите: mail from:<myname@mydomain.com> чтобы рассказать серверу от чьего имени вы собираетесь с ним говорить
mail from:myname@mydomain.com; 250 2.1.0 OK v72si21823782itb.85 - gsmtpЕсли сервер ответил “250”, значит можно двигаться дальше. Набирайте: rcpt to:<someuser@gmail.com>
rcpt to:someuser@gmail.com 250 2.1.5 OK v72si21823782itb.85 - gsmtpОтвет сервера на эту команду и скажет нам - действительно ли существует такой email как “someuser@gmail.com” или нет.
Если ответ будет “250 OK” значит такой адрес существует.Если же ответ будет “550” значит запрашиваемый вами аккаунт email не существует.
rcpt to:someuser@gmail.com 550-5.1.1 The email account that you tried to reach does not exist. Please try 550-5.1.1 double-checking the recipient's email address for typos or 550-5.1.1 unnecessary spaces. Learn more at 550 5.1.1 https://support.google.com/mail/answer/6596 y18si12470464ioi.55 - gsmtpНа заметку, если вы будете повторять такие процедуры очень часто и с одного и того же IP вас могут забанить по IP. Используйте с осторожностью.
Восстановить доступ к странице ВКонтакте можно относительно просто. И для этого даже не потребуется помощь…
Реверс инжиниринг электроники и программного обеспечения — увлекательная и важная дисциплина, играющая ключевую роль в…
Рынок смартфонов не стоит на месте и каждый год пополняется новыми моделями. Компания Apple традиционно…
Запуск онлайн-бизнеса может показаться сложной задачей, но на самом деле этот процесс можно существенно упростить,…
Если Вы хотите продвинуть свой сайт в поисковых системах, одним из самых важных аспектов является…
Корейская компания Samsung зарекомендовала себя на потребительском рынке как производитель флагманов, так и бюджетных смартфонов.…