11.12.2010

telnet smtp-server 25 и отправка писем из командной строки


Отправка почты через telnet
Как проверить работоспособность отправки почты с машины (своего сервера) используя утилиту telnet? Первый вариант - когда smtp сервер не требует авторизации (но большинство требует авторизации)

Итак, в командной строке вводим:

1. telnet "smtp.server.ru" 25 //Команда для входа на почтовый сервер
    220 "бла-бла" // ответ от сервера - всё ок
2. Команда приветствия:
    helo vasia.mail.ru // vasia.mail.ru - адрес с которого вы запустили telnet
    250 "бла-бла" // ответ от сервера - всё ок
3. Указываем адрес отправителя:
    mail from: vasia@mail.ru
    250  Sender ok  // ответ от сервера - всё ок
4. Указываем адресата:
    rcpt to: semen@mail.ru
    250 Recipient ok  // ответ от сервера - всё ок
5. Введим команду
    data
    354 Enter mail, end with "." on a line by itself // ответ от сервера - всё ок - можно вводить текст письма
6. Введём тему письма:
    Subject: тема тестового письма
7. С новой строки - текст письма -  а в конце письма одну точку в пустой строке, чтобы закончить письмо
    .
    Message accepted for delivery // ответ от сервера - письмо ушло
9. Введём для выхода команду
    quit
    221 closing connection
    Connection closed by foreign host.


Второй вариант - когда smtp сервер требует(!) авторизации - рассмотрим конкретный пример с сервисом mail.ru




В командной строке вводим:
1. telnet smtp.mail.ru 25 
    220 smtp2.mail.ru ESMTP ready
2. ehlo mail.ru //приветствуем сервер
    250-smtp2.mail.ru // ок – приветствие успешно
    250-SIZE 31457280
    250-8BITMIME
    250-PIPELINING
    250-AUTH PLAIN LOGIN
    250 STARTTLS
3. Авторизовываемся на сервере
    auth login
    334 VXNlcm5hbWU6 // ок – вводите логин пароль
4. Теперь нужно ввести логин и пароль(через Enter), но они должны быть закодированы. Следует использовать кодировщик base64 encode. В интернете можно найти ресурсы по кодировке, например этот
    YBHHHJRhbHk= // Закодированный логин
    334 UGFzc3dvcmQ6 // ок - принят
    cm9vdFdFSdsQ== // Закодированный пароль
    235 2.0.0 OK
5. mail from:vasia@mail.ru
    250 OK
6. rcpt to:vit@gmail.com
    250 Accepted
7. data
    354 Enter message, ending with "." on a line by itself
8. Subdject: testing from cmd
9. текст письма (в конце в пустой строке точку)
    hello World
    .
    250 OK id=1PRU8v-00052r-00
10. quit // Выходим с сервера
     221 smtp2.mail.ru closing connection
     Connection to host lost.