Главная
 Сайт Андрея Зайчикова
Вторник, 7 Августа 2007г. 
Карта сайта Поиск по сайту Написать письмо  
 .:Навигатор 
Новости
Библиотека
Статьи
Олимпиады
FAQ (ЧаВо)
Гостевая книга 
Ссылки
 .:Информация 


Telnet - лучший почтовый клиент (POP3 + SMTP).

Андрей Зайчиков (август 2001 г.)
Эта статья рассказывает о том, как получать и отправлять почту с помощью программы telnet. На самом деле, все намного проще чем кажется. Попробуйте и Вам понравится, а я, в свою очередь, постараюсь Вым помочь, ну или хотя бы не помешать :-) Если у Вас есть какие-либо вопросы, дополнения или коментарии пишите.

Предисловие
Итак, начнем. Принимать почту мы будем по протоколу POP3 на 110-м порту, а отправлять по протоколу SMTP на 25-м порту, это наиболее популярная связка в Internet на сегодня. Я Вас еще не испугал? Надеюсь, что нет. Нам также понадобится программа telnet, она есть в большинстве операционных систем и на ней мы подробно останавливаться не будем. Для работы нам понядобятся некоторые данные, такие как адреса POP3 и SMTP серверов, а так же логин и пароль для POP3 сервера. Как правило их можно узнать у Вашего Internet провайдера.

POP3 (Post Office Protocol - Version 3)
Набираем в командной строке telnet pop3-сервер 110, нам отвечают что-то вроде +OK POP3 server ready. Теперь мы можем посылать команды и получать ответы на них. Вот некоторые из них:

КомандаОписание
USER логинСообщаем серверу свой логин, это необходи сделать перед работой с Вашей почтой. Если пользователь с таким именем существует, то сервер говорит +OK ... иначе -ERR ...
PASS парольСообщаем серверу свой пароль. Результат аналогичный описаному ранне.
STATСтатистика ящика. В качестве результата количесиво писем и их суммарный объем. Например +OK 2 320.
LIST [номер]Список писем находящихся в Вашем ящике и их объем. В качестве аргумента может быть указан номер письма, о котором нужна информация. Если он отсутствует, то выдаеся список всех сообщений, который оканчивается точкой.
RETR номерСкачивание письма с указанным номером.
DELE номерУдаление письма с указанным номером.
TOP номер NПросмотр N первых строк письма с указанным номером. Удобно, если ваш ящик забомбили большими письмами, и вы хотите удалить ненужное письма, не скачивая их.
QUITЗавершение сеанса работы с POP3 сервером.

В случае удачного выполнения все команды возвращают +OK ..., а в случае неудачи +ERR ... Вот пример сеанса работы с POP3 серверов (C: - набрано на клавиатуре, S: - ответ сервера).
C: telnet pop3-сервер 110
S: +OK POP3 server ready

C: USER неправильный_логин
S: -ERR sorry, no mailbox for frated here

C: USER логин
S: +OK name is a valid mailbox

C: PASS пароль
S: +OK логин's maildrop has 2 messages (320 octets)

C: STAT
S: +OK 2 320

C: LIST
S: +OK 2 messages (320 octets)
S: 1 12
S: 2 200
S: .

C: LIST 2
S: +OK 2 200

C: LIST 3
S: -ERR no such message, only 2 messages in maildrop

C: RETR 1
S: +OK 120 octets
S: <текст письма>
S: .

C: DELE 1
S: +OK message 1 deleted

C: QUIT
S: +OK dewey POP3 server signing off

SMTP (Simple Mail Transfer Protocol)
Набираем в командной строке telnet smtp-сервер 25, нам отвечают что-то вроде 220 сервер SMTP Ready. Теперь мы можем посылать команды и получать ответы на них. Вот некоторые из них:

КомандаОписание
HELO [домен]Приветствуем сервер, и говорим ему свой домен.
MAIL FROM: <отправитель>Сообщаем серверу, что хотим послать письмо от адреса "отправитель".
RCPT TO: <получатель>Сообщаем серверу адрес получателя письма. Таких строк может быть несколько. Если сервер не сможет послать по этому адресу письмо, то ответ об этом придет на адрес указаный в команде MAIL.
DATAПосле ввода этой команды идет текст письма, которое Вы хотите послать. Обратите внимание, что такие поля как "Subject", "From:" и т.д. надо писать именно в тексте письма. Ввод письма оканчивается точкой на отдельной строке.
QUITЗавершение сеанса работы с SMTP сервером.

В ответ на каждую команду сервер выдает ответ, в начале которого идет код ответа (250 в случае удачного выполнения), а затем текстовый коментарий. Вот пример сеанса работы с SMTP серверов (C: - набрано на клавиатуре, S: - ответ сервера).
C: telnet smtp-сервер 25
S: 220 сервер SMTP Ready

C: HELO сервер
S: 250 сервер Hello [IP адрес], pleased to meet you

C: MAIL FROM: <vasily@pupkin.ru>
S: 250 <vasily@pupkin.ru>... Sender ok

C: RCPT TO: <bill@microsoft.com>
S: 250 <bill@microsoft.com>... Recipient ok

C: DATA
S: 354 Start mail input; end with <CRLF>.<CRLF>

C: From: "Vasily Pupkin" <vasily@pupkin.ru>
C: To: "Bill" <bill@microsoft.com>
C: Subject: Must Windows die?
C: Date: Mon, 13 Aug 2001 07:10:02 MSK
C: Content-Type: text/plain; charset="windows-1251"
C: X-Priority: 3
C: X-Mailer: Ruki.sys
C: 
C: Subj?
C: 
C: .
S: 250 SAD07321 Queued mail for delivery

C: QUIT
S: 221 2.0.0 сервер Service closing transmission channel

Подробнее
Более подробно о протоколах POP3 и SMTP можно узнать из RFC1939 и RFC821 соответственно.

 
 © Андрей Зайчиков