Вт. Май 17th, 2022

Иногда бывает необходимо протестировать свой SMTP-сервер вручную,из консоли.

Для этого подключаемся telnet’ом по адресу:

telnet myserver.com 25

и видим как сервер прислал нам приглашение:

220 smtp12.mail.ru ESMTP ready

Теперь запрашиваем варианты авторизации(test это имя с потолка. можно написать все что угодно):

EHLO test

и видим ответ
250-smtp12.mail.ru
250-SIZE 73400320
250-8BITMIME
250-AUTH PLAIN LOGIN
250 STARTTLS

тут мы видим два варианта авторизации — PLAIN и LOGIN. Разниц только в том,что в первом варианте мы передаем наш логин+пароль одной строкой,а во втором варианте — сначала логин, затем пароль.Но все они кодируются обязательно в BASE64.

Для  кодирования ваших данных для PLAIN авторизации можно написать и выполнить в консоли такой простой скрипт на Perl:

perl -MMIME::Base64 -e ‘print encode_base64(«\0test\@myserver.com\000123123»);’

обратите внимание в начале стоит \0 (бекслеш и ноль), знак крокозяблы тоже экранирован бекслешем,а после домена .com стоят бекслеш и три ноля! пароль начинается только после трех нулей! После чего мы получим строчку в кодировке AHRlc3RAbXlzZXJ2ZXIuY29tADEyMzEyMw==. Копируем ее в буфер. Теперь соединяемся с нашим сервером:

telnet myserver.com 25

S> 220 myserver.com ready!

C>EHLO test.com

S>250-myserver.com
     250-SIZE 73400320
     250-8BITMIME
     250-AUTH PLAIN LOGIN 
     250 STARTTLS

C>AUTH PLAIN

S>334

C>AHRlc3RAbXlzZXJ2ZXIuY29tADEyMzEyMw==

S>235 ok

все,мы авторизированы. Теперь можем слать что хотим. Это вариант с PLAIN аутентификацией. Теперь вариант с LOGIN.

telnet myserver.com 25

S> 220 myserver.com ready!

C>EHLO test.com

S>250-myserver.com
     250-SIZE 73400320
     250-8BITMIME
     250-AUTH PLAIN LOGIN 
     250 STARTTLS

C>AUTH LOGIN

S>334 VXNlcm5hbWU6

Далее сначала вводим наш логин затем получаем ответ 334 и вводим наш пароль.Если получаем ответ 235 то все отлично! Кодировать свои логин и пароль отдельно можно или же вышеуказанным скриптом,или таким вот РНР скриптом:

<?
print base64_encode(«test@myserver.com»);
print ‘<br>’;
print base64_encode(«123123»);
?>

от RUSUA

Добавить комментарий

Ваш адрес email не будет опубликован.

Анти-спам: выполните заданиеWordPress CAPTCHA