Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет olegmi ([info]olegmi)
@ 2008-04-15 21:01:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:tech

Протокол POP3

Формально, взаимодействие по протоколу POP3 можно разделить на две фазы: фазу аутентификации и фазу обмена данными. В фазе аутентификации пользователь должен сообщить свой идентификатор и пароль. Если аутентификация была произведена успешно, то система позволяет работать с домашним ящиком пользователя. Сам протокол POP3 очень похож на SMTP с той только разницей, что сообщения можно принимать, но нельзя отправлять.

Исследуем этот протокол на примере. Для этого будем использовать программу Telnet. Программа Telnet входит в поставку всех операционных систем, которые поддерживают tcp/ip.

Для пользователей Windows: Start(Пуск)->Run(Выполнить). В окошке набираем:

telnet smtp.mail.ru 110

Должна запуститься программа и сразу подсоединиться к серверу. Об удачном подключении будет свидетельствовать сообщение от сервера (что-нибудь в таком роде):

+OK POP3 server ready

Далее нам нужно аутентифицироваться на сервере. Для этого есть две команды user и pass (логин и пароль). Попробуем их использовать:

user sergey
+OK
pass mypassword
+OK

Далее нам нужно узнать, что находится в нашем почтовом ящике. Используем для этого команду stat:

stat
+OK 6 12576

Этот ответ говорит о том, что в нашем почтовом ящике есть 6 писем общим объемом 12576 байт.

Посмотрим на эти письма более конкретно (с помощью команды list):

list
+OK 6 messages (12576 octets)
1 1447
2 2640
3 2296
4 1100
5 3025
6 2068
.

Например, мы хотим получить четвертое письмо. Для этого используем команду retr номер_письма:

retr 4

Received: from host.talk.ru (host.talk.ru [194.67.45.136])
by saloon-o.mail.ru (Postfix) with ESMTP id 48BAC1AA60
for <sss@mail.ru>; Tue, 17 Aug 2004 11:19:24 +0400 (MSD)
Received: from mail by host.talk.ru with local (Exim 3.36 #5)
id 1BwyFg-00051X-00
for sss@mail.ru; Tue, 17 Aug 2004 11:19:02 +0400
From: mailoffice@talk.ru
Reply-To: mailoffice@talk.ru
Subject: talk.mail.ru
To: sss@mail.ru
Mime-Version: 1.0
Content-Type: text/plain; charset=koi8-r
Content-Transfer-Encoding: 8bit
Message-Id: <e1bwyfg-00051x-00@host.talk.ru>
Sender: mail <mail@host.talk.ru>
Date: Tue, 17 Aug 2004 11:19:02 +0400
.

Теперь, когда мы прочитали это сообщение, мы можем его удалить. Пометить для удаления можно с помощью команды dele номер _сообщения (сообщение удалиться после того, как мы закончим сеанс, то есть введем команду quit):

dele 4
+OK Message 4 has been deleted.

Нужно вспомнить о еще одной команде. Это команда - rset. С помощью этой команды можно отменить пометку об удалении сообщений (она будет действовать, пока мы не закончим сеанс). Например:

rset
+OK Maildrop has 6 messages (12576 octets)

Теперь нам остается только закончить сеанс:

quit
+OK Pop server signing off.

Здесь указано все примерно, ответы сервера могут отличатся от приведенных здесь, но принцип остается тот же.