Из Википедии, бесплатной энциклопедии
  (Перенаправлено из IMAP )
Перейти к навигации Перейти к поиску

В сфере вычислений протокол доступа к сообщениям в Интернете ( IMAP ) - это стандартный протокол Интернета , используемый почтовыми клиентами для получения сообщений электронной почты с почтового сервера через соединение TCP / IP . [1] IMAP определяется RFC  3501 .

IMAP был разработан с целью разрешить полное управление почтовым ящиком для нескольких почтовых клиентов, поэтому клиенты обычно оставляют сообщения на сервере до тех пор, пока пользователь не удалит их явным образом. Сервер IMAP обычно прослушивает порт номер 143. IMAP через SSL / TLS ( IMAPS ) назначается номер порта 993. [2] [3]

Практически все современные почтовые клиенты и серверы поддерживают IMAP, который наряду с более ранним протоколом POP3 (Post Office Protocol) является двумя наиболее распространенными стандартными протоколами для получения электронной почты. [4] Многие поставщики услуг веб-почты, такие как Gmail , Outlook.com, также предоставляют поддержку как IMAP, так и POP3.

Электронные протоколы [ править ]

Интернет-протокол доступа к сообщениям - это Интернет-протокол прикладного уровня , который позволяет почтовому клиенту получать доступ к электронной почте на удаленном почтовом сервере . Текущая версия определена RFC 3501 . Сервер IMAP обычно прослушивает хорошо известный порт 143, в то время как IMAP через SSL / TLS (IMAPS) использует 993. [2] [3] 

Входящие сообщения электронной почты отправляются на сервер электронной почты, который хранит сообщения в почтовом ящике получателя. Пользователь получает сообщения с помощью почтового клиента, который использует один из нескольких протоколов получения электронной почты. В то время как некоторые клиенты и серверы предпочтительно использовать Vendor-Specific, собственные протоколы , [5] почти все поддержка POP и IMAP для получения почты - позволяет многим свободный выбор между многими клиентами электронной почты , таких как Pegasus Mail или Mozilla Thunderbird , чтобы получить доступ к этим серверам, и позволяет использовать клиентов с другими серверами .

Почтовые клиенты, использующие IMAP, обычно оставляют сообщения на сервере до тех пор, пока пользователь не удалит их явным образом. Эта и другие характеристики работы IMAP позволяют нескольким клиентам управлять одним и тем же почтовым ящиком. Большинство почтовых клиентов поддерживают IMAP в дополнение к протоколу почтового отделения (POP) для получения сообщений. [6] IMAP предлагает доступ к почтовому хранилищу. Клиенты могут хранить локальные копии сообщений, но они считаются временным кешем.

История [ править ]

IMAP был разработан Марком Криспином в 1986 году как протокол удаленного доступа к почтовому ящику, в отличие от широко используемого POP, протокола для простого получения содержимого почтового ящика.

Он прошел через ряд итераций до текущей ВЕРСИИ 4rev1 (IMAP4), как подробно описано ниже:

Исходный IMAP [ править ]

Первоначальный промежуточный протокол доступа к почте был реализован как клиент машины Xerox Lisp и сервер TOPS-20 .

Копий исходной временной спецификации протокола или его программного обеспечения не существует. [7] [8] Хотя некоторые из его команд и ответов были похожи на IMAP2, временный протокол не имел тегов команд / ответов, и поэтому его синтаксис был несовместим со всеми другими версиями IMAP.

IMAP2 [ редактировать ]

Промежуточный протокол был быстро заменен протоколом интерактивного доступа к почте (IMAP2), определенным в RFC 1064 (в 1988 г.) и позже обновленным RFC 1176 (в 1990 г.). IMAP2 представил теги команд / ответов и был первой общедоступной версией.  

IMAP3 [ редактировать ]

IMAP3 - крайне редкий вариант IMAP. [9] Он был опубликован как RFC 1203 в 1991 году. Он был написан специально как встречное предложение к RFC 1176 , который сам предлагал модификации IMAP2. [10] IMAP3 никогда не был принят рынком. [11] [12] IESG реклассифицировала RFC1203 «Протокол доступа к интерактивной почты - Версия 3» в качестве исторического протокола в 1993 году IMAP Рабочей группы используется RFC +1176 (IMAP2) , а не RFC 1203 (IMAP3) в качестве отправной точки. [13] [14]  

IMAP2bis [ править ]

С появлением MIME IMAP2 был расширен для поддержки структур тела MIME и добавления функций управления почтовыми ящиками (создание, удаление, переименование, загрузка сообщений), которые отсутствовали в IMAP2. Эта экспериментальная версия получила название IMAP2bis; его спецификация никогда не публиковалась в виде не-проекта. Интернет-проект IMAP2bis был опубликован рабочей группой IETF IMAP в октябре 1993 года. Этот проект был основан на следующих более ранних спецификациях: неопубликованный документ IMAP2bis.TXT , RFC 1176 и RFC 1064 (IMAP2). [15] В проекте IMAP2bis.TXT задокументировано состояние расширений IMAP2 по состоянию на декабрь 1992 года. [16] Ранние версии  Pine широко распространялся с поддержкой IMAP2bis [9] (Pine 4.00 и более поздние версии поддерживают IMAP4rev1).

IMAP4 [ редактировать ]

Рабочая группа IMAP, сформированная в IETF в начале 1990-х, взяла на себя ответственность за дизайн IMAP2bis. Рабочая группа IMAP решила переименовать IMAP2bis в IMAP4, чтобы избежать путаницы.

Преимущества перед POP [ править ]

Подключенный и отключенный режимы [ править ]

При использовании протокола POP клиенты обычно подключаются к серверу электронной почты на короткое время, ровно столько, сколько требуется для загрузки новых сообщений. При использовании IMAP4 клиенты часто остаются на связи, пока активен пользовательский интерфейс, и загружают содержимое сообщения по запросу. Для пользователей с большим количеством или большими сообщениями этот шаблон использования IMAP4 может привести к более быстрому времени отклика.

Несколько одновременных клиентов [ править ]

Протокол POP требует, чтобы текущий подключенный клиент был единственным клиентом, подключенным к почтовому ящику. Напротив, протокол IMAP, в частности, разрешает одновременный доступ нескольким клиентам и предоставляет клиентам механизмы для обнаружения изменений, внесенных в почтовый ящик другими, одновременно подключенными, клиентами. См., Например, раздел 5.2 RFC 3501, в котором в качестве примера конкретно приводится «одновременный доступ к одному и тому же почтовому ящику несколькими агентами». 

Доступ к частям сообщения MIME и частичная выборка [ править ]

Обычно вся электронная почта в Интернете передается в формате MIME , что позволяет сообщениям иметь древовидную структуру, в которой конечные узлы представляют собой любой из множества типов контента, состоящих из одной части, а нелистовые узлы - это любые из множества составных типов. Протокол IMAP4 позволяет клиентам извлекать любую из отдельных частей MIME по отдельности, а также извлекать части либо отдельных частей, либо всего сообщения. Эти механизмы позволяют клиентам извлекать текстовую часть сообщения без извлечения вложенных файлов или передавать содержимое в потоковом режиме по мере его извлечения.

Информация о состоянии сообщения [ править ]

Используя флаги, определенные в протоколе IMAP4, клиенты могут отслеживать состояние сообщения: например, было ли сообщение прочитано, на него был дан ответ или удалено ли сообщение. Эти флаги хранятся на сервере, поэтому разные клиенты, обращающиеся к одному и тому же почтовому ящику в разное время, могут обнаруживать изменения состояния, сделанные другими клиентами. POP не предоставляет клиентам механизма для хранения такой информации о состоянии на сервере, поэтому, если один пользователь обращается к почтовому ящику с двумя разными POP-клиентами (в разное время), информация о состоянии, например, был ли получен доступ к сообщению, не может быть синхронизирована между клиентов. Протокол IMAP4 поддерживает как предопределенные системные флаги, так и определяемые клиентом ключевые слова. Системные флаги указывают информацию о состоянии, например, прочитано ли сообщение. Ключевые слова, которые поддерживаются не всеми серверами IMAP,разрешить отправку сообщений одному или несколькимтеги , значение которых зависит от клиента. Ключевые слова IMAP не следует путать с проприетарными ярлыками веб- служб электронной почты, которые иногда переводятся в папки IMAP соответствующими проприетарными серверами.

Несколько почтовых ящиков на сервере [ править ]

Клиенты IMAP4 могут создавать, переименовывать и / или удалять почтовые ящики (обычно представляемые пользователю в виде папок) на сервере и копировать сообщения между почтовыми ящиками. Поддержка нескольких почтовых ящиков также позволяет серверам предоставлять доступ к общим и общим папкам. Расширение списка управления доступом (ACL) IMAP4 ( RFC 4314 ) может использоваться для регулирования прав доступа. 

Серверный поиск [ править ]

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

Встроенный механизм расширения [ править ]

Отражая опыт более ранних интернет-протоколов, IMAP4 определяет явный механизм, с помощью которого он может быть расширен. Было предложено множество расширений IMAP4 для базового протокола, которые широко используются. IMAP2bis не имел механизма расширения, а теперь у POP есть механизм, определенный в RFC 2449 . 

Недостатки [ править ]

Хотя протокол IMAP устраняет многие недостатки протокола POP, он, по сути, вносит дополнительную сложность. Большая часть этой сложности (например, одновременный доступ нескольких клиентов к одному и тому же почтовому ящику) компенсируется обходными решениями на стороне сервера, такими как Maildir или серверная часть базы данных.

Спецификацию IMAP критиковали за то, что она недостаточно строгая и допускает поведение, которое фактически сводит на нет ее полезность. Например, в спецификации указано, что каждое сообщение, хранящееся на сервере, имеет «уникальный идентификатор», позволяющий клиентам идентифицировать сообщения, которые они уже видели между сеансами. Однако спецификация также позволяет аннулировать эти UID без каких-либо ограничений, что практически противоречит их назначению. [17]

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

Клиенты IMAP4 должны поддерживать соединение TCP / IP с сервером IMAP, чтобы получать уведомления о поступлении новой почты. Уведомление о прибытии почты осуществляется посредством внутриполосной сигнализации , что в некоторой степени усложняет обработку протокола IMAP на стороне клиента. [18] Частное предложение, push IMAP , расширит IMAP для реализации push электронной почты путем отправки всего сообщения, а не только уведомления. Однако push-протокол IMAP не получил широкого распространения, и текущая работа IETF решает проблему другими способами ( дополнительные сведения см. В профиле Lemonade ).

В отличие от некоторых проприетарных протоколов, которые объединяют операции отправки и получения, отправка сообщения и сохранение копии в папке на стороне сервера с клиентом IMAP базового уровня требует передачи содержимого сообщения дважды: один раз на SMTP для доставки и второй раз на IMAP для хранить в папке отправленных писем. Это решается набором расширений, определенных профилем IETF Lemonade для мобильных устройств: URLAUTH ( RFC 4467 ) и CATENATE ( RFC 4469 ) в IMAP и BURL ( RFC 4468 ) в SMTP-SUBMISSION. В дополнение к этому Courier Mail Server предлагает нестандартный метод отправки с использованием IMAP путем копирования исходящего сообщения в специальную папку для исходящих сообщений. [19]   

Безопасность [ править ]

Для криптографической защиты соединений IMAP можно использовать IMAPS на TCP-порту 993, который использует SSL / TLS. [2] [3] По состоянию на январь 2018 г. рекомендуется использовать TLS. [20]

В качестве альтернативы STARTTLS может использоваться для обеспечения безопасной связи между MUA, взаимодействующим с MSA, или MTA, реализующими протокол SMTP .

Пример диалога [ править ]

Это пример IMAP-соединения, взятого из раздела 8 RFC 3501 :

C: <открытое соединение>S: * ОК IMAP4rev1 Сервис готовC: a001 логин mrc secretS: a001 OK ВХОД завершенC: a002 выберите почтовый ящикS: * 18 СУЩЕСТВУЕТS: * ФЛАГИ (\ Ответил \ Отметил \ Удален \ Просмотрел \ Черновик)S: * 2 НЕДАВНИЕS: * OK [UNSEEN 17] Сообщение 17 - первое невидимое сообщениеS: * OK [UIDVALIDITY 3857529045] UID действительныS: a002 OK [READ-WRITE] SELECT завершенC: a003 получить 12 полныхS: * 12 FETCH (FLAGS (\ Seen) INTERNALDATE "17 июля 1996 г. 02:44:25 -0700") RFC822.SIZE 4286 ENVELOPE ("Среда, 17 июля 1996 г., 02:23:25 -0700 (PDT)") "Сводка и протокол IMAP4rev1 WG mtg" (("Терри Грей" NIL "серый" "cac.washington.edu")) (("Терри Грей" NIL "серый" "cac.washington.edu")) (("Терри Грей" NIL "серый" "cac.washington.edu")) ((NIL NIL "imap" "cac.washington.edu")) ((NIL NIL "минут" "CNRI.Reston.VA.US") ("Джон Кленсин" НИЛ "КЛЕНСИН" "MIT.EDU")) НИЛ НЕТ "<[email protected]>") BODY («TEXT» «PLAIN» («CHARSET» «US-ASCII») NIL NIL «7BIT» 3028 92))S: a003 OK FETCH завершенC: a004 fetch 12 body [заголовок]S: * 12 FETCH (ТЕЛО [ЗАГОЛОВОК] {342}С: Дата: среда, 17 июля 1996 г., 02:23:25 -0700 (PDT)СУБЪЕКТ: От: Терри Грей <[email protected]>S: Тема: IMAP4rev1 WG mtg summary и протоколИ: Кому: [email protected]S: cc: [email protected], Джон Кленсин <[email protected]>S: Идентификатор сообщения: <[email protected]>S: MIME-Версия: 1.0S: Content-Type: ТЕКСТ / ОБЫЧНЫЙ; CHARSET = US-ASCIIS:S:)S: a004 OK FETCH завершенC a005 store 12 + flags \ удаленоS: * 12 ПОЛУЧИТЬ (ФЛАГИ (\ Seen \ Deleted))S: a005 OK + FLAGS завершеноC: a006 выйтиS: * BYE Сервер IMAP4rev1 завершает соединениеS: a006 OK ВЫХОД завершен

См. Также [ править ]

  • Список программного обеспечения почтового сервера
  • Сравнение почтовых клиентов
  • Сравнение почтовых серверов
  • IMAP IDLE
  • Протокол мета-приложений JSON (JMAP)
  • Почтовый протокол (POP)
  • Push-IMAP
  • Простой протокол доступа к почте
  • Простой протокол передачи почты
  • Электронная почта

Ссылки [ править ]

  1. ^ Дин, Тамара (2010). Сеть + Путеводитель по сетям . Дельмар. п. 519. ISBN 978-1-42390245-4.
  2. ^ a b c Блюм, Ричард (15 декабря 2002 г.). Безопасность электронной почты с открытым исходным кодом . Самс Паблишинг. ISBN 9780672322372 - через Google Книги.
  3. ^ a b c Гарфинкель, Симсон; Спаффорд, Джин; Шварц, Алан (15 декабря 2003 г.). «Практическая UNIX и Интернет-безопасность» . "O'Reilly Media, Inc." - через Google Книги.
  4. Перейти ↑ Komarinski, Mark (2000). Справочник системного администратора Red Hat Linux . Прентис Холл. п. 179.
  5. ^ Например, Microsoft «s Перспективы клиент использует MAPI , Microsoft собственный протокол, обмениваться данными с сервером Microsoft Exchange Server . IBM «s Notes клиент работает аналогичным образом при общении с Domino сервера.
  6. ^ Кефаль, Diana (2000). Управление IMAP . О'Рейли . п. 25. ISBN 0-596-00012-X.
  7. Криспин, Марк (13 февраля 2012 г.). «Re: [imap5] Разработка нового протокола замены для IMAP» . imap5 (список рассылки). [email protected] . Проверено 26 ноября 2014 года . Знание оригинального IMAP (до IMAP2) существует прежде всего в моей голове, поскольку все оригинальные спецификации и реализации IMAP были заменены на IMAP2.
  8. ^ Реестр имени службы и номера порта транспортного протокола . Iana.org (12 июля 2013 г.). Проверено 17 июля 2013.
  9. ^ a b "RFC 2061 - СОВМЕСТИМОСТЬ IMAP4 С IMAP2BIS" . IETF. 1996 . Проверено 21 августа 2010 .
  10. ^ «ИНТЕРАКТИВНЫЙ ПРОТОКОЛ ДОСТУПА К ПОЧТЕ - ВЕРСИЯ 3» . IETF. 1991 . Проверено 21 августа 2010 .
  11. ^ «IMAP2, IMAP2bis, IMAP3, IMAP4, IMAP4rev1 (протоколы электронной почты LAN)» . Проверено 21 августа 2010 .
  12. ^ «Обзор IMAP, история, версии и стандарты» . Проверено 21 августа 2010 .
  13. ^ «Действие протокола: протокол интерактивного доступа к почте - от версии 3 до исторической (почтовый архив IETF)» . 1993 . Проверено 21 августа 2010 .
  14. ^ «Innosoft и протоколы POP / IMAP? (Почтовый архив)» . 1993 . Проверено 21 августа 2010 .
  15. ^ «ИНТЕРАКТИВНЫЙ ПРОТОКОЛ ДОСТУПА К ПОЧТЕ - ВЕРСИЯ 2bis (Интернет-проект)» . IETF. 1993 . Проверено 21 августа 2010 .
  16. ^ «IMAP2BIS - РАСШИРЕНИЯ ПРОТОКОЛА IMAP2 (ПРОЕКТ)» . 1992. Архивировано из оригинала на 2011-07-18 . Проверено 21 августа 2010 .
  17. ^ «Реализация IMAP в Sup, почтовом клиенте, написанном на Ruby» . rubyforge.com. Архивировано из оригинала на 2007-12-12 . Проверено 22 февраля 2011 .
  18. ^ «IMAP IDLE: лучший подход для« push »электронной почты» . Isode.com . Проверено 30 июля 2009 .
  19. ^ «Courier-IMAP: отправка почты через соединение IMAP» . Double Precision, Inc . Проверено 24 сентября 2013 .
  20. ^ RFC 8314 . DOI : 10,17487 / RFC8314 .

Дальнейшее чтение [ править ]

  • Криспин, Марк (1988–2016). «Десять заповедей написания клиента IMAP» . Вашингтонский университет . Архивировано из оригинала на 2016-08-29 . Проверено 2 ноября 2018 .
  • Хайнлайн, П; Хартлебен, П. (2008). Книга IMAP: Создание почтового сервера с Courier и Cyrus . Пресс без крахмала. ISBN 978-1-59327-177-0.
  • Хьюз, Л. (1998). Протоколы электронной почты в Интернете, стандарты и реализация . Издательство Artech House. ISBN 0-89006-939-5.
  • Джонсон, К. (2000). Протоколы электронной почты в Интернете: Руководство разработчика . Эддисон-Уэсли Профессионал. ISBN 0-201-43288-9.
  • Лошин, П (1999). «Основные стандарты электронной почты: RFC и протоколы стали практичными». Программирование интернет-почты . О'Рейли. ISBN 1-56592-479-7.

Внешние ссылки [ править ]

  • «Список рассылки протокола IMAP» .
  • RFC  3501 - спецификация IMAP версии 4, редакция 1
  • RFC  2683 - предложения по реализации IMAP RFC
  • RFC  2177 - команда IMAP4 IDLE