Post Office Protocol (POP) — протокол доставки почты пользователю из почтового ящика почтового сервера РОР . Многие концепции, принципы и понятия протокола POP выглядят и функционируют подобно SMTP. Команды POP практически идентичны командам SMTP, отличаясь в некоторых деталях. На рис.7 изображена модель клиент-сервер по протоколу 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ОРЗ разработан с учетом специфики доставки почты на персональные компьютеры и имеет соответствующие операции для этого.
Урок #110 Почтовые протоколы IMAP и POP3
Назначение протокола РОРЗ
Ранее почтовые сообщения большинства сетей доставлялись непосредственно от одного компьютера к другому. И если пользователь часто менял рабочие компьютеры или один компьютер принадлежал нескольким пользователям, существовали определенные проблемы. В наши дни общепринята доставка сообщения не на компьютеры пользователя, а в специальные почтовые ящики почтового сервера организации, который круглосуточно работает (включен).
Описание протокола РОРЗ
Конструкция протокола РОРЗ обеспечивает возможность пользователю обратиться к своему почтовому серверу и изъять накопившуюся для него почту. Пользователь может получить доступ к РОР-серверу из любой точки доступа к Интернет. При этом он должен запустить специальный почтовый агент (UA), работающий по протоколу РОРЗ, и настроить его для работы со своим почтовым сервером.
Итак, во главе модели POP находится отдельный персональный компьютер, работающий исключительно в качестве клиента почтовой системы (сервера). Подчеркнем также, что сообщения доставляются клиенту по протоколу POP, а посылаются по-прежнему при помощи SMTP. То есть на компьютере пользователя существуют два отдельных агента-интерфейса к почтовой системе — доставки (POP) и отправки (SMTP). Разработчики протокола РОРЗ называет такую ситуацию «раздельные агенты» (split UA). Концепция раздельных агентов кратко обсуждается в спецификации РОРЗ.
В протоколе РОРЗ оговорены три стадии процесса получения почты: авторизация, транзакция и обновление. После того как сервер и клиент РОРЗ установили соединение, начинается стадия авторизации. На стадии авторизации клиент идентифицирует себя для сервера. Если авторизация прошла успешно, сервер открывает почтовый ящик клиента и начинается стадия транзакции.
В ней клиент либо запрашивает у сервера информацию (например, список почтовых сообщений), либо просит его совершить определенное действие (например, выдать почтовое сообщение). Наконец, на стадии обновления сеанс связи заканчивается. В табл.7 перечислены команды протокола РОРЗ, обязательные для работающей в Интернет реализации минимальной конфигурации.
Урок #110. Почтовые протоколы IMAP и POP3
Таблица 5. Команды протокола POP версии 3 (для минимальной конфигурации)
В протоколе РОРЗ определено несколько команд, но на них дается только два ответа: +ОК (позитивный, аналогичен сообщению-подтверждению АС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 отмечает сообщение, которое нужно удалить:
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 , и все отмеченные для удаления сообщения будут восстановлены.
Источник: www.linuxlib.ru
Иллюстрированный самоучитель по Linux
Большинство пользователей, которые работают на компьютерах под управлением Windows или на Macintosh и получают почту с почтового сервера ISP, вероятно, используют протокол РОР3.
В модели РОРЗ пользователи устанавливают связь с Internet, загружают новое сообщение из своих почтовых ящиков, и затем, как правило, удаляют исходную копию из почтового ящика на удаленном сервере. Тем самым создается локальный почтовый ящик, содержащий точную копию исходного почтового ящика на сервере. Пользователи могут просматривать почту, писать ответы и новые сообщения, организовывать почту в режиме off-line и при установлении связи отправлять подготовленные сообщения и проверять наличие новых сообщений.
РОРЗ – простой и наиболее доступный для большинства пользователей протокол. Он является идеальным решением при вышкой стоимости времени в режиме on-line или при ограниченной ширине доступной полосы частот. Поскольку протокол РОР3 разрабатывался для работы в режиме off-line, он наиболее подходит пользователям с ограниченным доступом к сети. Но простота протокола приводит к некоторым серьезным ограничениям.
Предположим, пользователям необходим доступ к удаленному почтовому ящику с двух или более компьютеров. Это несложно организовать при условии, что копии всех загруженных сообщений остаются на удаленном сервере, использующем протокол РОРЗ. Тогда можно было бы загружать все сообщения с использованием почтовых программ на двух различных, находящихся в разных местах компьютерах. Но как узнать, отправлен ли ответ с другого компьютера? Кроме того, если письмо удалено с сервера до его загрузки на оба компьютера, то один из компьютеров будет иметь неполный почтовый ящик.
Подобный сценарий имеет отношение к пользователям, которые работают на двух персональных компьютерах – один дома, и один, например, мобильный. Оба персональных компьютера для просмотра почты из одного почтового ящика используют почтовую программу, работающую по протоколу РОРЗ. Утром на домашний компьютер загружается дневная почта. Допустим, получено 50 сообщений, в том числе 33 ненужных. Пользователь немедленно удаляет ненужные сообщения, отвечает на 7 сообщений и подшивает 10 сообщений для дальнейшей обработки.
Днем тот же пользователь получает доступ к почтовому ящику с портативной системы. Он получает почту. Число сообщений теперь – 58. Это 33 ненужных сообщения, которые были удалены на домашней машине, 7 – на которые уже отправлен ответ и 10 сохраненных для дальнейшей обработки сообщений. Кроме того, получено 8 новых сообщений.
Описанная ситуация обычна и приводит к огромному количеству неизбежных повторений при попытке работать с почтой с двух или более мест.
Источник: samoychiteli.ru
Протокол РОРЗ
POP3 — это простейший протокол для работы пользователя с содержимым своего почтового ящика. Он позволяет только забрать почту из почтового ящика сервера на рабочую станцию клиента и удалить ее из почтового ящика на сервере. Всю дальнейшую обработку почтовое сообщение проходит на компьютере клиента.
РОРЗ — сервис, как правило, устанавливается на 110-й TCP-порт сервера, который будет находиться в режиме ожидания входящего соединения. Когда клиент хочет воспользоваться РОРЗ -сервисом, он просто устанавливает ТСР-соединение с портом ПО этого хоста. После установления соединения сервис РОРЗ отправляет подсоединившемуся клиенту приветственное сообщение. После этого клиент и сервер начинают обмен командами и данными. По окончании обмена РОРЗ -канал закрывается.
Ответы РОРЗ-сервера на команды состоят из строки статус-индикатора, ключевого слова, строки дополнительной информации и символов завершения строки — . Длина строки ответа может достигать 512 символов. Строка статус-индикатора принимает два значения: положительное («+ОК») и отрицательное («-ERR»). Любой сервер РОРЗ обязан отправлять строки статус-индикатора в верхнем регистре, тогда как другие команды и данные могут приниматься или отправляться как в нижнем, так и в верхнем регистрах.
РОРЗ-сессия состоит из нескольких частей. Как только открывается ТСР-соединение и РОРЗ-сервер отправляет приветствие, сессия должна быть зарегистрирована — состояние аутентификации (AUTHORIZATION state). Клиент должен зарегистрироваться в РОРЗ-сервере, т. е. ввести свой идентификатор и пароль. Это может быть выполнено либо с помощью команд USER и PASS — ввод открытых пользовательского идентификатора и пароля, либо командой АРОР — авторизации цифровой подписью, на базе секретного ключа.
После этого сервер предоставляет клиенту его почтовый ящик и открывает для данного клиента транзакцию — состояние начала транзакции обмена (TRANSACTION state). На этой стадии клиент может считать и удалить почту своего почтового ящика. Команда STAT (без аргументов) используется для просмотра состояния текущего почтового ящика.
В ответ РОРЗ- сервер возвращает строку, содержащую количество и общий размер в байтах сообщений, которые клиент может получить с РОРЗ- сервера. Сообщения, помеченные на удаление, не учитываются. Формат ответа: «+ОК nn mm», где пп — количество сообщений, mm — их общий объем:
Команда RETR — используется для передачи клиенту запрашиваемого сообщения:
После получения, сообщение, как правило, помечается на удаление из почтового ящика, при этом используется команда DELE:
После того как клиент заканчивает работу (передает команду QUIT), сессия переходит в состояние UPDATE — завершение транзакции. В этом состоянии РОРЗ-сервер закрывает транзакцию данного клиента (на языке баз данных -операция COMMIT) и закрывает ТСР-соединение. Аргумент команды: номер сообщения. Сообщения, помеченные на удаление, реально удаляются только после закрытия транзакции, на стадии UPDATE.
Для проверки состояния соединения с РОРЗ- сервером используется команда NOOP. При активном соединении ответом на нее будет положительный индикатор «+ОК»:
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru