IMAP

IMAP
Название Internet Message Access Protocol
Уровень (по модели OSI) Прикладной
Семейство TCP/IP, E-Mail
Создан в 1986
Порт/ID 143/TCP, 993/TCP (IMAP поверх SSL)
Назначение протокола Доступ к почтовым ящикам
Спецификация RFC 9051
Основные реализации (клиенты) MUA (Outlook Express, Opera, Mozilla Thunderbird, The Bat!, Claws Mail, mutt и др.)
Основные реализации (серверы) UW IMAP, Courier, Cyrus, Dovecot

IMAP (англ. Internet Message Access Protocol) — протокол прикладного уровня для доступа к электронной почте, основанный на TCP. Использует порт 143[К 1], работает только с сообщениями, не требует пакетов со специальными заголовками[1].

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

Обычно для отправки писем используется SMTP, поскольку команда APPEND, встроенная в IMAP, не позволяет передавать служебную информацию[1].

Для имён почтовых ящиков (папок) с символами вне диапазона ASCII используется модифицированная версия кодировки UTF-7[1].

Цель разработки

IMAP является альтернативой POP с минимальными способностями по отправке.

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

Для решения проблем, связанных с этой особенностью POP, в 1986 году Марк Криспин (англ. Mark Crispin), работавший тогда в Стэнфордском университете, создал новый протокол получения почты с сервера[2], который предоставил пользователям возможность получения электронной почты в различных местах из одного почтового ящика и управления сообщениями, а также дополнительные функции по обслуживанию почтовых ящиков на сервере.

В дальнейшем POP был доработан: в модификации POP3 есть возможность получать с сервера избранные сообщения и оставлять избранные сообщения на сервере. В последних версиях между IMAP и POP основное различие для пользователя — IMAP4 может обращаться к письмам в разных почтовых папках на сервере и перемещать письма между ними, а POP3 обращается к письмам на сервере по номерам в линейном списке (то есть работает только с одной почтовой папкой).

Версии протокола IMAP[2]
  • IMAP: в 1986 реализован на DEC, спецификация отсутствует
  • IMAP2: реализован в 1987, описан в 1988 в RFC 1064, доработан в 1990 (RFC 1176)
  • IMAP3: 1991 RFC 1203
  • IMAP2bis, спецификация существует только в черновом варианте 1993 года, плюс в RFC 2061 (1996) описаны различия между IMAP4 и IMAP2bis
  • IMAP4: 1994 RFC 1730
  • IMAP4rev1: 1996 RFC 2060, 2003 RFC 3501

Преимущества по сравнению с POP3

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

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

Благодаря системе флагов, определённой в IMAP4, клиент может отслеживать состояние сообщения (прочитано, отправлен ответ, удалено и т. д.); данные о флагах хранятся на сервере.

Клиенты IMAP4 могут создавать, переименовывать и удалять ящики и перемещать сообщения между ящиками. Кроме того, можно использовать расширение «IMAP4 Access Control List (ACL) Extension» (RFC 4314) для управления правами доступа к ящикам.

Поиск сообщений происходит на стороне сервера.

IMAP4 имеет явный механизм расширения[3].

Примечания

Комментарии

  1. IMAPS (IMAP поверх SSL) использует порт 993.

Источники

  1. 1 2 3 Семёнов, 2014.
  2. 1 2 University of Washington.
  3. В чем разница между POP и IMAP? support.microsoft.com. Дата обращения: 19 июля 2021. Архивировано 19 июля 2021 года.

Литература

  • Hughes, L. Internet e-mail Protocols, Standards and Implementation. — Artech House Publishers, 1998. — ISBN 0-89006-939-5.
  • Johnson, K. Internet Email Protocols: A Developer's Guide. — Addison-Wesley Professional, 2000. — ISBN 0-201-43288-9.
  • Loshin, P. Essential Email Standards: RFCs and Protocols Made Practical. — John Wiley & Sons, 1999. — ISBN 0-471-34597-0.
  • Rhoton, J. Programmer's Guide to Internet Mail: SMTP, POP, IMAP, and LDAP. — Elsevier, 1999. — ISBN 1-55558-212-5.
  • Wood, David. Programming Internet Email : Mastering Internet Messaging Systems. — O'Reilly, 1999. — 380 p. — ISBN 1-56592-479-7.

Ссылки