Pop3 протокол. Как работает протокол POP3

Post Office Protocol (POP) - протокол доставки почты пользователю из почтового ящика почтового сервера РОР. Многие концепции, принципы и понятия протокола POP выглядят и функционируют подобно SMTP. Команды POP практически идентичны командам SMTP, отличаясь в некоторых деталях. На рисунке изображена модель клиент-сервер по протоколу POP. Сервер POP находится между агентом пользователя и почтовыми ящиками.

В настоящее время существуют две версии протокола POP - РОР2 и РОРЗ, обладающими примерно одинаковыми возможностями, однако несовместимыми друг с другом. Дело в том, что у РОР2 и РОРЗ разные номера портов протокола. Между ними отсутствует связь, аналогичная связи между SMTP и ESMTP. Протокол РОРЗ не является расширением или модификацией РОР2 - это совершенно другой протокол. РОР2 определен в документе RFC 937 (Post Office Protocol-Version 2, Butler, et al, 1985), a РОРЗ - в RFC 1225 (Post Office Protocol-Version 3, Rose, 1991). Далее кратко рассмотрим POP вообще и более подробно - РОРЗ. PОРЗ разработан с учетом специфики доставки почты на персональные компьютеры и имеет соответствующие операции для этого.

Назначение протокола РОРЗ

Ранее почтовые сообщения большинства сетей доставлялись непосредственно от одного компьютера к другому. И если пользователь часто менял рабочие компьютеры или один компьютер принадлежал нескольким пользователям, существовали определенные проблемы. В наши дни общепринята доставка сообщения не на компьютеры пользователя, а в специальные почтовые ящики почтового сервера организации, который круглосуточно работает (включен).

Описание протокола РОРЗ

Конструкция протокола РОРЗ обеспечивает возможность пользователю обратиться к своему почтовому серверу и изъять накопившуюся для него почту. Пользователь может получить доступ к РОР-серверу из любой точки доступа к Интернет. При этом он должен запустить специальный почтовый агент (UA), работающий по протоколу РОРЗ, и настроить его для работы со своим почтовым сервером. Итак, во главе модели POP находится отдельный персональный компьютер, работающий исключительно в качестве клиента почтовой системы (сервера). Подчеркнем также, что сообщения доставляются клиенту по протоколу POP, а посылаются по-прежнему при помощи SMTP. То есть на компьютере пользователя существуют два отдельных агента-интерфейса к почтовой системе - доставки (POP) и отправки (SMTP). Разработчики протокола РОРЗ называет такую ситуацию "раздельные агенты" (split UA). Концепция раздельных агентов кратко обсуждается в спецификации РОРЗ.

В протоколе РОРЗ оговорены три стадии процесса получения почты: авторизация, транзакция и обновление. После того как сервер и клиент РОРЗ установили соединение, начинается стадия авторизации. На стадии авторизации клиент идентифицирует себя для сервера. Если авторизация прошла успешно, сервер открывает почтовый ящик клиента и начинается стадия транзакции. В ней клиент либо запрашивает у сервера информацию (например, список почтовых сообщений), либо просит его совершить определенное действие (например, выдать почтовое сообщение). Наконец, на стадии обновления сеанс связи заканчивается. В табл.7 перечислены команды протокола РОРЗ, обязательные для работающей в Интернет реализации минимальной конфигурации.

Таблица 5. Команды протокола POP версии 3 (для минимальной конфигурации)

Команда
Описание

USER Идентифицирует пользователя с указанным именем

PASS
Указывает пароль для пары клиент-сервер
QUIT
Закрывает TCP-соединение

STAT
Сервер возвращает количество сообщений в почтовом ящике плюс размер почтового ящика

LIST
Сервер возвращает идентификаторы сообщений вместе с размерами сообщений (параметром команды может быть идентификатор сообщения)

RETR
Извлекает сообщение из почтового ящика (требуется указывать аргумент-идентификатор сообщения)

DELE
Отмечает сообщение для удаления (требуется указывать аргумент - идентификатор сообщения)

NOOP
Сервер возвращает положительный ответ, но не совершает никаких действий

LAST
Сервер возвращает наибольший номер сообщения из тех, к которым ранее уже обращались

RSET
Отменяет удаление сообщения, отмеченного ранее командой DELE

В протоколе РОРЗ определено несколько команд, но на них дается только два ответа: +ОК (позитивный, аналогичен сообщению-подтверждению АСK) и -ERR (негативный, аналогичен сообщению "не подтверждено" NAK). Оба ответа подтверждают, что обращение к серверу произошло и что он вообще отвечает на команды. Как правило, за каждым ответом следует его содержательное словесное описание. В RFC 1225 есть образцы нескольких типичных сеансов РОРЗ. Сейчас мы рассмотрим несколько из них, что даст возможность уловить последовательность команд в обмене между сервером и клиентом.

После того как программа установила TCP-соединение с портом протокола РОРЗ (официальный номер 110), необходимо послать команду USER с именем пользователя в качестве параметра. Если ответ сервера будет +ОК, нужно послать команду PASS с паролем этого пользователя:

CLIENT: USER kcope
ERVER: +ОК
CLIENT: PASS secret
SERVER: +ОК kcope"s maildrop has 2 messages (320 octets)
(В почтовом ящике kcope есть 2 сообщения (320 байтов) ...)

Транзакции РОРЗ

Команда STAT возвращает количество сообщений и количество байтов в сообщениях:

CLIENT: STAT
SERVER: +ОК 2 320

Команда LIST (без параметра) возвращает список сообщений в почтовом ящике и их размеры:

CLIENT: LIST
SERVER: +ОК 2 messages (320 octets)
SERVER: 1 120
SERVER: 2 200
SERVER: . ...

Команда LIST с параметром возвращает информацию о заданном сообщении:

CLIENT: LIST 2
SERVER: +ОК 2 200 ...
CLIENT: LIST 3
SERVER: -ERR no such message, only 2 messages in maildrop

Команда TOP возвращает заголовок, пустую строку и первые десять строк тела сообщения:

CLIENT: TOP 10
SERVER: +ОК
SERVER:
(сервер POP высылает заголовки сообщений, пустую строку и первые десять строк тела сообщения)
SERVER: . ...
CLIENT: TOP 100
SERVER: -ERR no such message
Команда NOOP не возвращает никакой полезной информации, за исключением позитивного ответа сервера. Однако позитивный ответ означает, что сервер находится в соединении с клиентом и ждет запросов:

CLIENT: NOOP
SERVER: +ОК

Следующие примеры показывают, как сервер POP3 выполняет действия. Например, команда RETR извлекает сообщение с указанным номером и помещает его в буфер местного UA:

CLIENT: RETR 1
SERVER: +OK 120 octets
SERVER:
(РОРЗ-сервер высылает сообщение целиком)
SERVER: . . . . . .

Команда DELE отмечает сообщение, которое нужно удалить:

CLIENT: DELE 1
SERVER: +OK message 1 deleted ...
(сообщение 1 удалено)
CLIENT: DELE 2
SERVER: -ERR message 2 already deleted
сообщение 2 уже удалено)
Команда RSET снимает метки удаления со всех отмеченных ранее сообщений:

CLIENT: RSET
SERVER: +OK maildrop has 2 messages (320 octets)
(в почтовом ящике 2 сообщения (320 байтов))

Как и следовало ожидать, команда QUIT закрывает соединение с сервером:

CLIENT: QUIT
SERVER: +OK dewey POP3 server signing off
CLIENT: QUIT
SERVER: +OK dewey POP3 server signing off (maildrop empty)
CLIENT: QUIT
SERVER: +OK dewey POP3 server signing off (2 messages left)

Обратите внимание на то, что отмеченные для удаления сообщения на самом деле не удаляются до тех пор, пока не выдана команда QUIT и не началась стадия обновления. В любой момент в течение сеанса клиент имеет возможность выдать команду RSET, и все отмеченные для удаления сообщения будут восстановлены.

В данном уроке мы рассмотрим еще один протокол электронной почты, по которому почтовые клиенты «общаются» с почтовыми серверами.

Не думаю, что Вы будете устанавливать у себя локального почтового клиента. Но, именно на примере локального почтового клиента, проще понять, что собой представляют почтовые протоколы и, в частности, протокол POP3.

Сразу хочу оговориться, что мы с Вами рассматриваем протоколы приема (извлечения) электронной почты с почтовых серверов IMAP (имап, ай-мэп) и POP3 (поп три). Но не рассматриваем (пока) протокол передачи электронной почты на почтовые сервера SMTP (эс-эм-ти-пи).

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

Итак, настройка приема электронной почты по протоколу POP3.

Ничего нового изобретать не будем, а просто создадим еще одну учетную запись для нашего тестового адреса [email protected].

Для этого запускаем нашу программу клиента электронной почты, щелкаем левой кнопкой мыши по «имени» нашей единственной учетной записи «[email protected]», а затем опять левой кнопкой мыши по пункту меню создания учетной записи электронной почты.

В следующем окне заполняем поля точно так же, как мы заполняли эти поля при настройке учетной записи по протоколу IMAP. Затем щелкаем по кнопе «Продолжить».


В следующем окне нам предлагают выбор, по какому протоколу мы будем «забирать» свою почту с почтового сервера. Щелкаем левой кнопкой мыши сначала по кнопке выбора «POP3», а затем опять левой кнопкой мыши по кнопке «Готово».


Таким образом, в почтовом клиенте мы создали еще одну учетную запись, с помощью которой мы будем подключаться к почтовому серверу и забирать почту по протоколу POP3.


Папка «Входящие» пока пустая, так как клиент проверяет почту на сервере 1 раз в 10 минут. Ждать 10 минут мы не будем и проверим почту на почтовом сервере немедленно. Для этого нажмем кнопку пункта меню «Получить».


Вот здесь мы и начнем рассматривать принцип работы почты по протоколу POP3.

Почта с почтового сервера полностью «скачивается» на Ваш персональный компьютер. Другими словами копируется на Ваш компьютер в полном объеме.

И, теперь, Вы можете работать с электронной почтой полностью автономно. Почта, которая находится на Вашем персональном компьютере, теперь никак не связана с почтовым сервером, в отличие от протокола IMAP.

Но, прежде чем мы продолжим, давайте поменяем имя учетной записи электронной почты, созданной для работы с почтовым сервером по протоколу POP3.

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

В общем, чтобы не запутаться, меняем имя «учётки».

Для этого наводим указатель мыши на имя нашей учетной записи «[email protected]» и щелкаем по ней левой кнопкой мыши. Аналогично щелкаем по пункту меню настройки учетной записи «Просмотр параметров этой учетной записи».


У нас откроется окно настроек для наших учетных записей. Меняем имя нашей «учётки». Чтобы ничего не выдумывать, я просто допишу «(pop3 )».


Теперь легче ориентироваться в наших учетных записях.

Давайте будем считать, что мы уже просмотрели всю электронную почту и она нам больше не нужна. И решили мы удалить все письма сразу. Для этого щелкаем левой кнопкой мыши по любому письму. Комбинацией клавиш «Ctrl+A» выделяем сразу все письма и нажимаем клавишу «Del» для удаления.


Вся почта удалилась и была перемещена из папки «Входящие» в папку «Удаленные».


А теперь ВНИМАНИЕ!!! Два момента.

Теперь, пока не придет новое письмо, папка «Входящие» будет пустой. Это, вроде, само собой разумеется. Но!

Давайте посмотрим, что реально твориться с нашей почтой на почтовом сервере, которую мы у себя удалили. Посмотрим через учетную запись, настроенную на протокол IMAP и через .


Вся удаленная почта осталась на почтовом сервере. Хотя больше мы ее не получаем. Хорошо это или плохо?

Здесь, скорее больше минусов, чем плюсов. Хотя кому как.

Один из «длинных» минусов это то, что объем писем со временем будет нарастать и может полностью забить почтовый ящик. Письма просто перестанут приходить.

Один из «больших» плюсов это то, что даже если мы полностью удалим свою почту на локальном компьютере, мы всегда будем знать, что у нас есть как бы «резервная копия» всех наших писем

Давайте теперь изменим один параметр у сервера.

Для этого войдем в просмотр параметров учетной записи.

Щелкаем левой кнопкой мыши по имени учетной записи «[email protected] (pop3)», затем по пункту «Просмотр параметров учетной записи», затем по пункту «Параметры сервера».


Убираем галочку напротив «Оставлять копии сообщений на сервере». Нажимаем кнопку «ОК».


Теперь давайте посмотрим, что с нашей почтой на почтовом сервере в нашем почтовом ящике.


Как мы видим, вся почта была удалена сразу после того, как мы убрали галочку напротив параметра "Оставлять копии сообщений на сервере".

Хорошо это или плохо?

Здесь есть очень большой плюс. Вам нет необходимости беспокоиться о своем почтовом ящике на сервере. Он просто никогда не переполнится, и письма будут приходить всегда.

Из больших минусов то, что если Ваш компьютер выйдет из строя, то вся почта просто потеряется, если, конечно не делали резервные копии.

Но, с другой стороны, если нет резервной копии чего-то, то это самое «чего-то» уже не восстановишь. Причем не важно, что это — почта, фотографии, документы и т.п.

В принципе, в большинстве случаев учетную запись в почтовом клиенте для получения почты с почтового сервера настраивают именно по протоколу POP3, не оставляя почту в почтовом ящике на сервере.

Но и конечно, никто никогда не создает две учетные записи для одного и того же адреса электронной почты. Хотя, как Вы видите, возможность такая существует. И сделал я две записи только для наглядного примера.

Вот в принципе и все про протоколы IMAP и POP3.

В следующем уроке мы узнаем как «привязывать» электронную почту, работая с почтовым ящиком через Вэб-интерфейс. А также рассмотрим несколько различных способов вставки картинок.

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

На этом на сегодня все. Всем удачи и творческих успехов. 🙂

Рабочая станция может не иметь достаточных ресурсов для обеспечения непрерывной работы SMTP -сервера . Для домашних ЭВМ слишком дорого поддерживать связь с Интернет круглые сутки.

Но доступ к электронной почте необходим как для таких малых узлов, так и для индивидуальных ЭВМ. Для решения этой проблемы разработан протокол POP3 ( Post Office Protocol - Version 3, STD : 53. M. Rose, RFC-1939). Этот протокол обеспечивает доступ узла к базовому почтовому серверу.

POP3 не ставит целью предоставление широкого списка манипуляций с почтой. Почтовые сообщения принимаются почтовым сервером и сохраняются там, пока на рабочей станции клиента не будет запущено приложение POP3 . Это приложение устанавливает соединение с сервером и забирает сообщения оттуда. Почтовые сообщения на сервере стираются .

Более продвинутый и сложный протокол IMAP4 обсуждается в RFC-2060 ( порт 143). Об аутентификации в POP3 можно прочесть в документе RFC-1734.

В дальнейшем ЭВМ-клиентом будет называться машина, пользующаяся услугами POP3 , а ЭВМ-сервером - сторона, предлагающая услуги POP3 .

Когда пользователь ЭВМ-клиента хочет послать сообщение, он устанавливает SMTP связь с почтовым сервером непосредственно и посылает все, что нужно, через него. При этом ЭВМ POP3 - сервер не обязательно является почтовым сервером.

В исходный момент ЭВМ POP3 - сервер прослушивает TCP - порт 110. Если ЭВМ-клиент хочет воспользоваться услугами POP3 -сервера, то устанавливает с ним TCP - связь . По установлении связи POP3 - сервер посылает клиенту уведомление (например, +OK POP3 server ready ) и сессия переходит в фазу авторизации (см. также RFC-1734, -1957). После этого может производиться обмен командами и откликами.

Команды POP3 состоят из ключевых слов (3-4 символа), за которыми могут следовать аргументы. Каждая команда завершается парой символов CRLF. Как ключевые слова, так и аргументы могут содержать только печатаемые ASCII-символы. В качестве разделителя используются символы пробела. Каждый аргумент может содержать до 40 символов.

Сигнал отклика в POP3 содержит индикатор состояния и ключевое слово , за которым может следовать дополнительная информация . Отклик также завершается кодовой последовательностью CRLF. Длина отклика не превышает 512 символов, включая CRLF. Существует два индикатора состояния: положительный - "+OK" и отрицательный - "- ERR " (все символы прописные).

Отклики на некоторые команды могут содержать несколько строк. В этом случае последняя строка содержит код завершения 046 ("."), за которым следует CRLF.

На практике многострочные отклики для исключения имитации завершаются последовательностью "CRLF.CRLF".

В процессе авторизации клиент должен представить себя серверу, передав имя и пароль (возможен вариант посылки команды APOP). Если авторизация успешно завершена, сессия переходит в состояние транзакции ( TRANSACTION ). При получении от клиента команды QUIT сессия переходит в состояние UPDATE , при этом все ресурсы освобождаются и TCP - связь разрывается.

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

POP3 - сервер может быть снабжен таймером пассивного состояния (10 мин.), который осуществляет автоматическое прерывание сессии. Приход любой команды со стороны клиента сбрасывает этот таймер в нуль.

Сервер нумерует все передаваемые сообщения из своего почтового ящика и определяет их длину. Положительный отклик начинается с +OK, за ним следует пробел , номер сообщения, еще один пробел и длина сообщения в октетах. Завершается отклик последовательностью CRLF. Переданные сообщения удаляются из почтового ящика сервера. Все сообщения, передаваемые во время сессии POP3 , должны следовать рекомендациям формата Интернет сообщений .

В состоянии транзакции клиент может посылать серверу последовательность POP3 -команд, на каждую из которых сервер должен послать отклик. Далее следует краткое описание команд, используемых в состоянии транзакция .

LIST [сообщение]

Аргументы : номер сообщения ( опционно ), который не может относиться к сообщению, помеченному как удаленное. Команда может быть выдана только в режиме TRANSACTION . При наличии аргумента сервер выдает положительный отклик, содержащий информационную строку сообщения. Такая строка называется скэн-листингом сообщения ( scan



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: