Протокол POP3 (Post Office Protocol) Протокол обмена почтовой информацией POP3 (RFC-1939)предназначен для разбора почты из почтовых ящиков пользователей на их рабочие места при помощи программ-клиентов. Если по протоколу SMTP пользователи отправляют корреспонденцию через Интернет, то по протоколу POP3 пользователи получают корреспонденцию из своих почтовых ящиков на почтовом сервере в локальные файлы.
Итак, РОРЗ (Post Office Protocol version 3). Номер его TCP-порта - 110. Основное отличие РОРЗ от других Интернет-протоколов верхнего уровня заключается в том, что в нем отсутствует широкий спектр кодов ошибок: в ответ на любую команду он посылает строки, начинающиеся с "+ОК" или "-ERR", сигнализирующие соответственно об успешном или неудачном выполнении команды.
Набор основных команд протокола также достаточно прост:
USER paaa
PASS doom
С: STAT S: +OK 11 1594
С: LIST 3 S: +ОК 3 512
С: RETR 4 S: +ОК 124 octets S: Здесь S: идет S: текст S: письма S:.
С: DELE 1 S: +ОК message 1 deleted
Приведем пример взаимодействия по протоколу POP3:
quest> telnet quest.net.kiae.su Trying 144.206.130.138... Connected to quest.net.kiae.su. Escape character is '^]'. +OK QPOP (version 2.2) at quest.net.kiae.su starting. <10124.867839706@quest.net.kiae.su> user paul +OK Password required for paul. pass Kukuru23432 +OK paul has 6 messages (12576 octets). stat +OK 6 12576 list +OK 6 messages (12576 octets) 1 1447 2 2640 3 2296 4 1100 5 3025 6 2068 . noop +OK last +OK 4 is the last read message. retr 4 +OK 1100 octets Received: from mail1.relcom.ru (mail1.relcom.ru [193.125.152.4]) by quest.net.kiae.su (8.7.5/8.7.3) with ESMTP id CAA09628 for <paul@quest.net.kiae.su>; Wed, 2 Jul 1997 02:51:43 +0400 (MSD) Received: from thevni (uucp@localhost) by mail1.relcom.ru (8.7.5.R.ML.S/Relcom-2A) with UUCP id BAA03544 for paul;Wed, 2 Jul 1997 01:34:45 +0400 (MSD) Received: by Relay1.relcom.ru (UUMAIL/2.0); Wed, 2 Jul 97 01:34:44 +0300 Received: by theor.vniinm.msk.su (UUPC/@ v5.06gamma, 07Feb93); Wed, 2 Jul 1997 01:24:57 +0400 To: paul@kiae.su References: <33B92C6B.9FA2C1A4@kiae.su> Message-Id: <AAeMNkpiq1@theor.vniinm.msk.su> Organization: A.A. Bochvar Institute for Inorganic Materials, Theoret From: "Alexander Z. Solontsov" <sol@theor.vniinm.msk.su> Date: Wed, 2 Jul 97 01:24:56 +0400 X-Mailer: BML [MS/DOS Beauty Mail v.1.36] Subject: life Lines: 9 X-UIDL: 2313051b98ef908dceefe8b801d9e60d Status: RO To: N.M.Sergeeva Dear H.M., I am still alive, publishing a lot, and this year applied to RAN. Would be pleased to hear from you in a more derect way. Alexander . dele 4 +OK Message 4 has been deleted. rset 4 -ERR Too many arguments for the rset command. rset +OK Maildrop has 6 messages (12576 octets) list +OK 6 messages (12576 octets) 1 1447 2 2640 3 2296 4 1100 5 3025 6 2068 . quit +OK Pop server at quest.net.kiae.su signing off. Connection closed by foreign host.
В данном примере используется прием доступа к серверу через программу Telnet по 110 порту TCP. Заметим, что команда dele только помечает сообщение к удалению. Удаляются сообщения только в момент окончания сеанса, а во время сеанса они только помечаются как удаленные, поэтому по команде RSET эти пометки можно снять.
Работа протокола осуществляется по 143 потру TCP. Главным отличием от POP является возможность поиска нужного сообщения и разбор заголовков сообщения.
Ниже приведен пример взаимодействия по протоколу IMAP:
OK IMAP2 Server Ready A001 LOGIN Fred Secret A001 OK User Fred logged in A002 SELECT INBOX * FLAGS (Meeting Notice \Answered \Flagged \Deleted \Seen) * 19 Exists * 2 Recent * A002 OK Select compete A003 FETCH 1:19 ALL * 1 Fetch ( ..... * 19 Fetch (.... A003 OK Fetch complete A004 LOGOUT * Bye IMAP2 server quitting A004 OK Logout complete
Для поиска информации используются команды FIND с различными аргументами.
Существует несколько способов доступа, используемых для доступа к почтовому ящику. Среди них: стратегия разделяемой файловой системы, частные LAN-ориентированные протоколы, X.400 P7 протокол и Internet протоколы для доступа к сообщениям. Рассмотрим Internet протоколы: POP (Post Office Protocol) и IMAP(Internet Message Access Protocol). Из них POP наиболее старый и поэтому самый известный. IMAP (на данный момент IMAP4 revision 1) предоставляет надмножество возможностей POP, и предлагает хорошую поддержку всех трёх моделей доступа к удалённому почтовому ящику: offline, online и отсоединённый (disconnected). (Определения этих моделей можно найти в RFC-1733.)
POP был разработан для поддержки offline обработки почты. Согласно offline парадигме почта доставляется на (обычно разделяемый) сервер, а пользователь ПК периодически запускает почтового клиента, который соединяется с сервером и выкачивает всю новую почту на ПК. Вся обработка почты, например её фильтрация, происходит на локальной машине.
Об offline доступе можно думать как о сервисе "хранения и пересылки" (store-and-forward service), предназначенном для пересылки почты (по требованию) с почтового сервера на единственную конечную машину, обычно ПК или Mac. Однажды доставленные на конечную машину, сообщения удаляются с почтового сервера. Хотя ограничения offline доступа могут быть скомпенсированы использованием POP в online режиме, POP просто-напросто не имеет некоторой функциональности, требуемой для высококачественного online (или отсоединённого) доступа. В действительности, псевдо-онлайн режим доступа, поддерживаемый POP3, который заключается в том, что пользователь оставляет почту на сервере, часто требует наличие широко распространенного файлово-ориентированного протокола (remote file system protocol), для того, чтобы почтовый клиент сумел обновить почтовый ящик или установить флаги сообщения.
IMAP также может применяться для offline доступа, но его мощь проявляется в первую очередь при online и disconnected доступе. В случае online доступа, почта также доставляется на разделяемый сервер, но клиент уже не осуществляет копирование всей почты зараз с последующим ее удалением с сервера. Online подход более клиент-серверный. В случае online доступа клиент может запросить у сервера заголовок сообщения или запросить поиск сообщения по некоторому критерию. Письма в хранилище сообщений могут быть помечены различными флагами статуса (например, письмо помечено для удаления или на него был послан ответ) и эти отметки сохраняются до тех пор пока не будут явно удалены пользователем (что может не произойти до следующей сессии). Если сказать вкратце, то IMAP позволяет манипулировать удаленными почтовыми ящиками, как будто они являются локальными. В зависимости от реализации IMAP клиента и почтовой архитектуры, которую пожелал иметь управляющий почтовой системой, пользователь может сохранять сообщения только на клиентской машине, только на сервере или иметь выбор сделать и то и другое.
Как offline, так и online почтовые программы позволяют получить доступ к новым поступающим сообщениям на почтовом сервере с различных клиентских платформ. Однако на этом их сходство заканчивается. Эти две парадигмы отражают различные требования и стили использования, и они не очень хорошо комбинируются друг с другом. Offline доступ лучше подходит для людей, которые всегда используют единственную клиентскую машину. Он не очень хорошо подходит для таких задач как доступ к чьему-либо ящику входящих писем или ящикам с сохраненной корреспонденцией с различных машин в различное время. Все это можно объяснить тем, что при использовании offline ("скачал и удалил") доступа к почте с различных компьютеров, Ваша почта рассеивается по различным машинам, если только они не объединены общей файловой системой (в последнем случае Вы на самом деле имеете доступ в большей мере online, чем offline). С другой стороны, хорошим качеством offline доступа является то, что он минимизирует использование серверных ресурсов и время соединения, если используется удаленный доступ по модему. Суммируя всё вышесказанное, можно привести различия между online и offline парадигмами:
Основное преимущество online парадигмы состоит в том, что почтовые ящики с входящей и архивной почтой хранятся на сервере и к ним можно единообразно получить доступ с различных компьютеров в различное время. И всё это можно осуществлять без использования протоколов общего доступа к файлам (эти протоколы существуют далеко не на каждой платформе, могут уступать в производительности и вызывать проблемы блокировки файлов (file locking). Всё это не нужно для тех пользователей, которые всегда использует один и тот же компьютер для доступа к почте, но становится очень важным для тех, кто использует несколько компьютеров.
Приведём теперь краткое сравнение протоколов POP3 и IMAP4
А теперь подробнее:
IMAP может манипулировать постоянными флагами статуса сообщения, включающих "Seen", "Deleted", "Answered", а так же определенные пользователем флаги. IMAP позволяет хранить сообщения, а так же получать их с сервера. Пользователь может добавить сообщение из ящика входящих сообщений в архивный ящик (или наоборот) С помощью IMAP клиент может иметь доступ и управлять несколькими почтовыми ящиками. Это включает в себя как возможность именовать и получать доступ к различным архивным ящикам и ящикам для входящей почты, так и способность получать их список, создавать, удалять и переименовывать их. Эти почтовые ящики могут находиться как на одном, так и на разных почтовых серверах. IMAP клиент может позволить видеть их все одновременно и перемещать сообщения из одного ящика в другой.
IMAP может позволять одновременный доступ и обновление общих почтовых ящиков. Эта способность удобна в случае если несколько клиентов обрабатывают сообщения, приходящие в общий inbox. Все активные клиенты оповещаются об изменениях состояния почтового ящика через IMAP.
IMAP можно использовать для доступа к не почтовым данным, например к News-группам. Это удобно с точки зрения унификации метода доступа к различным классам информации. IMAP также поддерживает offline парадигму, которая позволяет экономить время соединения с сервером и серверные ресурсы. Offline доступ удобно использовать в ситуациях, когда доступ к серверу происходит только по дорогому коммутируемому соединению и многоплатформенный доступ к какому-либо почтовому ящику не требуется. Также выгодно использовать такой доступ, в случае если клиентская машина богата ресурсами, а сервер беден.
Не все IMAP клиенты предлагают поддержку offline режима, но протокол это позволяет в полной мере. Для IMAP существует протокол-компаньон, предназначенный для управления настройками пользователей, который называется IMSP, Internet Message Support Protocol. IMSP позволяет независимый от расположения (многоплатформенный) доступ к персональным настройкам пользователя, например к адресной книге. [Его потомок ACAP позволяет хранить также настройки для серверов, групп пользователей. ACAP специально оптимизирован для уменьшения количества пересылаемых по сети данных, имеет богатые возможности по поиску на стороне сервера, позволяет управлять правами доступа к данным.]
IMAP имеет конструкции для оптимизации online доступа, в особенности по низкоскоростным каналам. Эти конструкции включают возможность получить структуру сообщения не скачивая его целиком на клиентскую машину, избирательное скачивание частей сообщения и способность использовать сервер для поиска, с целью уменьшения количества передаваемых данных между клиентом и сервером. Очень полезным бывает отложить пересылку до подходящего момента некоторых сообщений или их частей [с сервера на клиентскую машину], если сообщения не представляют непосредственного интереса. Особенно это удобно в случае, когда соединение с сервером происходит по низкоскоростному каналу связи. В случае если сообщение содержит прикрепленные документы или мультимедиа данные, передача только части сообщения может оказаться большим преимуществом. Это можно достаточно наглядно ощутить, например, если Вы находитесь в гостинице и Вам присылают короткое сообщения с присоединенным 10Mb видео клипом.
Эффективная обработка MIME сообщений является значимым преимуществом IMAP над POP.
Подытожив, можно сказать, что IMAP выигрывает у POP в трех областях: