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

http://www.andrey.nnov.ru/articles.php?a=7

Андрей Зайчиков (август 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 соответственно.