Работа с почтовым ящиком через Telnet
В процессе обычного почтового обмена осуществляется как бы 2 независимых действия :
Вы посылаете письмо с помощью почтовой программы (Outlook Express, The Bat и др.) на сервер по SMTP протоколу (порт 25) или принимаете письмо с сервера по POP3 протоколу (порт 110).
Для подключения к SMTP или POP3 серверу нам поднадобится программа telnet. Она входит во все дистрибутивы Windows. (Пуск - Выполнить - Telnet или ищем telnet.exe-см. C:\WINDOWS). В меню программы находим "Подключить" - "Удаленная система." В графе имя узла указывается Ваш почтовый сервер, ниже используемый порт.
В Windows 2000/XP делаем так: Пуcк - Выполнить - cmd.exe В черном окне интерпретатора CMD пишем "telnet smtp.myisp.com 25" (вместо smtp.myisp.com вводим адрес SMTP сервера своего провайдера) и нажимаем "Enter". После установления соединения можно вводить предлагаемые ниже команды.
Чтение почты происходит по протоколу POP3.
Для подключения к POP3 серверу делаем все как в случае с SMTP только указываем адрес POP3 сервера и порт не 25-й а 110-й.
Взаимодействие по протоколу POP3 можно разделить на две фазы: фазу аутентификации и фазу обмена данными. В начале выдаются команды фазы аутентификации user и pass. В фазе аутентификации пользователь должен сообщить свой идентификатор и пароль. В качестве user указываем свою учетную запись до символа @, пароль-тот, что используется для доступа к Вашей почте. Если аутентификация была произведена успешно, то система позволяет работать с домашним ящиком пользователя. Затем по команде stat можно узнать статус почтового ящика пользователя - количество сообщений и их суммарный размер в байтах. По команде list система сообщает число сообщений и размер каждого из них. По команде top [(номер сообщения) n] можно получить заголовок сообщения и n - первых сторок ссобщения, по команде retr [номер сообщения] можно получить текст сообщения. По команде dele [номер сообщения] пометить сообщение к удалению. Удаляются сообщения только в момент окончания сеанса, а во время сеанса они только помечаются как удаленные, поэтому по команде rset эти пометки можно снять. Команда quit завершает сеанс работы с сервером.
Наиболее распространенным является отправка почтового сообщения, которая начинается по команде MAIL, идентифицирующей отправителя: mail from: vitya@mail.ru Следующей командой определяется адрес получателя: RCPT TO: rcpt to: vasya@hotmail.com После того, как определены отправитель и получатель почтового сообщения, набираем data. Команда data вводится без параметров и идентифицирует начало ввода почтового сообщения. Сообщение вводится до тех пор, пока не будет введена строка с точкой в первой позиции. Согласно стандарту почтового сообщения RFC822 отправитель передает заголовок и тело сообщения, которые разделены пустой строкой. Сам протокол SMTP не накладывает каких-либо ограничений на информацию, которая заключена между командой DATA и "." в первой позиции последней строки. Приведем пример обмена сообщениями при отправке и получении почты:
отправляем почту для saygak@ukr.net через почтовый сервер smtp.voliacable.com
telnet smtp.voliacable.com 25
Trying 82.144.192.38...
Connected to mail.voliacable.com.
Escape character is ']'.
220 mail.voliacable.com ESMTP Sendmail 8.12.9/8.12.9; Thu, 6 Jan 2005 00:50:47 +0200 (EET)
mail from:saygak@voliacable.com
250 2.1.0 saygak@voliacable.com... Sender ok
rcpt to:saygak@ukr.net
250 2.1.5 saygak@ukr.net... Recipient ok
data
354 Enter mail, end with "." on a line by itself
From:saygak@voliacable.com
To: saygak@ukr.net Subject: Test letter Test Sincerely yours, Michael . 250 2.0.0 j05Moloq006122 Message accepted for delivery
quit
221 2.0.0 mail.voliacable.com closing connection
Connection closed by foreign host.
Получаем почту с почтового сервера Ukr.Net
telnet freemail.ukr.net 110
Trying 212.42.65.68...
Connected to freemail.ukr.net.
Escape character is ']'.
+OK mPOP POP3 server ready <<a style="color: rgb(102, 102, 204); " class="linkification-ext" href="mailto:51152.1104965808@ukr.net" title="Linkification: mailto:51152.1104965808@ukr.net">51152.1104965808@ukr.net>
user saygak
+OK Password required for user saygak
pass MyPassword
+OK saygak's maildrop has 5 messages (9471 octets)
list
+OK 5 messages (9471 octets)
1 1108
2 3591
3 2701
4 1197
5 874
.
retr 5
+OK 874 octets
From saygak@voliacable.com Thu Jan 06 00:52:35 2005 Return-path: Received: from sled.volia.net ([82.144.192.38] helo=mail.voliacable.com) by mx-1.ukr.net with esmtp ID 1CmK15-000Ep6-9T for saygak@ukr.net; Thu, 06 Jan 2005 00:52:35 +0200 Received: from nowhere.com (nowhere.com [10.10.10.10]) by mail.voliacable.com (8.12.9/8.12.9) with SMTP id j05Moloq006122 for saygak@ukr.net; Thu, 6 Jan 2005 00:51:45 +0200 (EET) Date: Thu, 6 Jan 2005 00:50:47 +0200 (EET) From: saygak@voliacable.com Message-Id: <<a style="color: rgb(102, 102, 204); " class="linkification-ext" href="mailto:200501052251.j05Moloq006122@mail.voliacable.com" title="Linkification: mailto:200501052251.j05Moloq006122@mail.voliacable.com">200501052251.j05Moloq006122@mail.voliacable.com> X-Authentication-Warning: sled.volia.net: nowhere.com [10.10.10.10] didn't use HELO protocol To: saygak@ukr.net Subject: Test letter Test Sincerely yours, Michael .
dele 5
+OK message 5 deleted
quit
+OK POP3 server at ukr.net signing off
Connection closed by foreign host.
Итак, список команд для работы с почтовым ящиком
Команды SMTP - RFC 821 (Порт 25)
| HELO < сервер-отправитель> | Идентифицирует SMTP-сервер отправителя. |
| MAIL FROM <адрес отправителя> | Задает адрес отправителя. |
| RCPT TO: <адрес получателя> | Задает адрес получателя. |
| DATA | Указывает на начало сообщения. Для окончания сообщения указывается (.). |
| RSET | Прерывает передачу сообщения. |
| VRFY <> | Проверяет имя пользователя. |
| EXPN <> | Запрашивает список адресов электронной почты. |
| HELP | Запрашивает online-помощь. Выводит описание команд, реализованных в системе. |
| QUIT | Завершает SMTP-сеанс. |
Команды POP3 - RFC1725 (Порт 110):
| USER | имя_пользователя Посылает имя пользователя. |
| PASS пароль | Посылает пароль пользователя. |
| STAT | Запрашивает информацию о количестве непрочитанных сообщений/байтов. |
| RETR n | Требует показать сообщение номер n. |
| DELE n | Удаляет сообщение номер n. |
| LAST | Запрашивает номер последнего прочитанного сообщения. |
| LIST (n) | Запрашивает информацию о размере сообщения номер n или о размере всех сообщений.. |
| RSET | Восстанавливает удаленные сообщения и устанавливает счетчик сообщений в 1. |
| TOP n l | Печатает заголовок и l строк сообщения n. |
| NOOP | Режим ожидания. |
| QUIT | Завершает сеанс POP3. |
Кроме того, списочек кодов ответов почтового сервера:
Internet RFC/STD/FYI/BCP Archives RFC 821 SIMPLE MAIL TRANSFER PROTOCOL 4.2.2. NUMERIC ORDER LIST OF REPLY CODES 211 System status, or system help reply 214 Help message [Information on how to use the receiver or the meaning of a particular non-standard command; this reply is useful only to the human user] 220 Service ready 221 Service closing transmission channel 250 Requested mail action okay, completed 251 User not local; will forward to 354 Start mail input; end with . 421 Service not available, closing transmission channel [This may be a reply to any command if the service knows it must shut down] 450 Requested mail action not taken: mailbox unavailable [E.g., mailbox busy] 451 Requested action aborted: local error in processing 452 Requested action not taken: insufficient system storage 500 Syntax error, command unrecognized [This may include errors such as command line too long] 501 Syntax error in parameters or arguments 502 Command not implemented 503 Bad sequence of commands 504 Command parameter not implemented 550 Requested action not taken: mailbox unavailable [E.g., mailbox not found, no access] 551 User not local; please try 552 Requested mail action aborted: exceeded storage allocation 553 Requested action not taken: mailbox name not allowed [E.g., mailbox syntax incorrect] 554 Transaction failed August 1982 Simple Mail Transfer Protocol



