Открыть сервис

IMAP

IMAP (Internet Message Access Protocol — протокол доступа к интернет-сообщениям) — это протокол прикладного уровня для доступа к электронной почте, хранящейся на удалённом сервере. В отличие от более раннего протокола POP3, IMAP позволяет пользователю работать с письмами непосредственно на сервере, не загружая их полностью на локальное устройство, и синхронизировать состояние почтового ящика между несколькими клиентами. Протокол определён в RFC 3501 и поддерживает широкий набор операций, включая управление папками, поиск сообщений и частичную загрузку вложений.

История

Первая версия протокола IMAP (Interim Mail Access Protocol) была разработана Марком Криспином в 1986 году в Стэнфордском университете. В 1988 году вышла версия IMAP2, которая уже включала базовые функции управления папками. В 1994 году была опубликована спецификация IMAP4 (RFC 1730), которая впоследствии была заменена RFC 2060 (1996 год) и, наконец, RFC 3501 (2003 год), являющимся действующим стандартом.

Основным стимулом для развития IMAP стало распространение мобильных устройств и необходимость синхронизации почты между несколькими компьютерами, серверами и смартфонами. POP3, ориентированный на однократную загрузку и удаление писем с сервера, не обеспечивал такой гибкости. IMAP быстро стал стандартом для корпоративных почтовых систем, а затем и для большинства публичных почтовых сервисов, таких как Gmail, Яндекс.Почта и Mail.ru.

Принцип работы

IMAP работает по модели «клиент-сервер» поверх транспортного протокола TCP (обычно порт 143 для незащищённого соединения и порт 993 для IMAPS — IMAP поверх SSL/TLS). Клиент (почтовая программа, веб-интерфейс или мобильное приложение) устанавливает соединение с сервером, проходит аутентификацию (обычно по логину и паролю, реже — по OAuth-токенам) и отправляет команды для работы с почтовым ящиком.

Ключевые операции, поддерживаемые IMAP:

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

Отличия от POP3

Основные различия между IMAP и POP3 (Post Office Protocol version 3) сводятся к месту хранения и способу обработки писем:

ПараметрIMAPPOP3
Хранение писемНа сервере (копии могут кэшироваться локально)Обычно загружаются на клиент и удаляются с сервера
СинхронизацияПолная (состояние писем синхронизируется между устройствами)Отсутствует (каждое устройство имеет свою копию)
Работа с папкамиПоддерживает иерархию папок на сервереОбычно одна папка «Входящие»
Частичная загрузкаМожно загрузить только заголовки или текстЗагружается всё сообщение целиком
Управление флагамиДа (прочитано, отвечено и т.д.)Нет
Требования к серверуВысокие (дисковое пространство, нагрузка)Низкие (письма хранятся недолго)
ИспользованиеМногопользовательские системы, мобильный доступПростые сценарии, резервное копирование

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

Команды и состояния

Протокол IMAP использует текстовые команды, каждая из которых имеет уникальный тег (например, a001 LOGIN user password). Сервер отвечает на каждую команду одним или несколькими ответами, завершающимися строкой с тегом и статусом (OK, NO, BAD).

Основные состояния сессии:

  1. Non-Authenticated (неаутентифицированный) — начальное состояние после установки соединения, ожидается команда LOGIN или AUTHENTICATE.
  2. Authenticated (аутентифицированный) — пользователь подтверждён, но не выбрана папка. Доступны команды LIST, CREATE, DELETE папок.
  3. Selected (выбранный) — выбрана папка (команда SELECT). Доступны команды FETCH, STORE, COPY, SEARCH, EXPUNGE.
  4. Logout — завершение сессии.

Важной особенностью IMAP является поддержка «ленивого удаления» (lazy deletion): при команде STORE +FLAGS (\Deleted) сообщение помечается как удалённое, но физически удаляется только после выполнения команды EXPUNGE или закрытия папки (CLOSE).

Расширения и версии

Стандарт IMAP4rev1 (RFC 3501) является базовым. Однако протокол поддерживает множество расширений, добавляющих новые возможности:

Многие современные почтовые серверы (Dovecot, Cyrus, Microsoft Exchange) поддерживают эти расширения, что значительно улучшает производительность и функциональность.

Безопасность

По умолчанию IMAP передаёт данные (включая пароль) в открытом виде, что делает его уязвимым для перехвата. Для защиты используются два основных подхода:

  1. IMAPS (IMAP over SSL/TLS) — весь трафик шифруется с использованием SSL/TLS, соединение устанавливается на порт 993.
  2. STARTTLS — шифрование активируется после установки незащищённого соединения на порт 143 (команда STARTTLS). Этот метод менее надёжен, так как начальный обмен может быть атакован.

Рекомендуется использовать IMAPS или STARTTLS с обязательной проверкой сертификата сервера. Дополнительную защиту обеспечивают механизмы аутентификации, такие как CRAM-MD5, DIGEST-MD5 или OAuth 2.0, которые не передают пароль в открытом виде.

Применение

IMAP является основным протоколом для доступа к электронной почте в следующих сценариях:

В России IMAP активно используется в почтовых системах государственных учреждений, образовательных организаций и коммерческих компаний. Например, почтовый сервис «Почта России» и «МойОфис» поддерживают IMAP для интеграции с внешними клиентами.

Критика и ограничения

Несмотря на широкое распространение, IMAP имеет ряд недостатков:

Альтернативой IMAP в современных системах являются проприетарные протоколы (например, MAPI для Exchange) и протоколы на основе REST API (например, Microsoft Graph API или Google Gmail API), которые предлагают более гибкие возможности для интеграции с веб- и мобильными приложениями.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →