Thank you for reading this post, don't forget to subscribe!
При отправке по электронной почте user@domain.com, отправляющий почтовый сервер будет искать запись MX в DNS для ‘domain.com’, и если один или несколько MX записей найдены, почтовый сервер будет пытаться доставить электронную почту к почтовому серверу, указанному в domain.com записи MX.
Давайте попробуем проверить, существует ли адрес someuser@gmail.com или нет. Во-первых, нам нужно найти MX записи, связанные с доменом получателя, в нашем случае это gmail.com. Мы будем использовать утилиту DNS поиска под названием dig, которая устанавливается на большинстве систем Linux. В командной строке введите следующую команду:
1 |
dig gmail.com MX |
Вывод должен выглядеть следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
; <<>> 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< < - opcode: QUERY, status: NOERROR, id: 32294 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;gmail.com. IN MX ;; ANSWER SECTION: gmail.com. 3599 IN MX 10 alt1.gmail-smtp-in.l.google.com. gmail.com. 3599 IN MX 20 alt2.gmail-smtp-in.l.google.com. gmail.com. 3599 IN MX 30 alt3.gmail-smtp-in.l.google.com. gmail.com. 3599 IN MX 40 alt4.gmail-smtp-in.l.google.com. gmail.com. 3599 IN MX 5 gmail-smtp-in.l.google.com. ;; Query time: 20 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Fri Aug 26 10:13:19 2016 ;; MSG SIZE rcvd: 150 ; |
Мы можем заметить, что существует несколько MX записей каждый с разным значением уровня предпочтения.Чем меньше значение, тем выше приоритет. Отправляющий сервер сначала попытается доставить электронную почту на сервер с наивысшим приоритетом, и в нашем случае это ‘gmail-smtp-in.l.google.com’
Далее нам нужно подключиться к почтовому серверу ‘gmail-smtp-in.l.google.com’ на порт 25 (SMTP), чтобы подтвердить правильность адреса электронной почты someuser@gmail.com. Для этого мы можем использовать либо Telnet или Netcat. Оба инструмента доступны из программного обеспечения для большинства дистрибутивов Linux.
1 2 |
$ nc gmail-smtp-in.l.google.com 25 # or telent gmail-smtp-in.l.google.com 25 220 mx.google.com ESMTP a12si21630825itb.5 - gsmtp |
Для того, чтобы начать разговор типа HELO. Некоторые серверы также принимают EHLO вместо HELO.
1 2 |
HELO mydomain.com 250 mx.google.com at your service |
Тип: почта от: <name@mydomain.com>
1 2 |
mail from:<name@mydomain.com> 250 2.1.0 OK v72si21823782itb.85 - gsmtp |
Если сервер отвечает “250”, это означает, что мы можем двигаться дальше. Далее, введите: rcpt to: <someuser@gmail.com>
1 2 |
rcpt to:<someuser@gmail.com> 250 2.1.5 OK v72si21823782itb.85 - gsmtp |
Ответ сервера покажет нам является действительным адрес электронной почты “someuser@gmail.com” или нет.
Если вы получаете “250 OK” , это означает, что адрес электронной почты существует.
Если вы получите ответ “550”, как показано ниже, это означает, что учетная запись электронной почты, который вы пытались достичь не существует.
1 2 3 4 5 |
rcpt to:<someuser2345@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. Используйте с осторожностью.