Иногда бывает необходимо протестировать свой 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(«[email protected]»);
print ‘<br>’;
print base64_encode(«123123»);
?>