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

Протокол IMAP

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

История

Протокол разработан Марком Крисенсеном (Mark Crispin) в 1986 году. Первая версия называлась IMAP2 и позже была заменена IMAP2bis, а затем — стандартом IMAP4 (RFC 1730, 1995). Актуальная редакция — IMAP4rev1, описанная в RFC 3501 (2003), которая остаётся доминирующей версией. В 2021 году опубликован RFC 9051, заменивший RFC 3501 и описавший IMAP4rev2.

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

IMAP работает по модели «клиент — сервер». Клиент подключается к серверу по TCP (обычно порт 143, для защищённого соединения — 993) и выполняет над почтовыми ящиками набор команд: выбор папки, загрузка списка сообщений, чтение писем, изменение флагов, поиск, управление папками.

Ключевые особенности протокола:

  • Хранение на сервере — письма и папки остаются на почтовом сервере, что позволяет получать доступ к ним с разных устройств.
  • Синхронизация состояния — клиент хранит локальную копию заголовков и может работать офлайн, периодически синхронизируясь с сервером.
  • Иерархия папок — поддерживается древовидная структура почтовых ящиков (например, «Входящие», «Отправленные», «Архив» и пользовательские папки).
  • Серверный поиск — клиент может отправлять поисковый запрос на сервер и получать идентификаторы подходящих сообщений.
  • Флаги сообщений — письма помечаются флагами \Seen, \Answered, \Flagged, \Deleted, \Draft, что позволяет нескольким клиентам видеть состояние писем.

Сравнение с POP3

ПараметрIMAPPOP3
Хранение писемНа сервереСкачиваются на клиент
Работа с несколькими устройствамиДаОграничена
Папки на сервереПоддерживаютсяНе поддерживаются (в базовой версии)
Серверный поискДаНет
Потребление трафикаВышеНиже
Работа офлайнСинхронизацияПолная копия почты

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

Структура папок

IMAP использует иерархическую нейминг папок с разделителем /. Специальные папки определяются атрибутами \Inbox, \Sent, \Drafts, \Trash, \Archive, \Junk, что позволяет почтовым клиентам автоматически назначать им роль в интерфейсе. Папка «Входящие» (INBOX) в IMAP обязана существовать в каждом ящике и всегда доступна первой.

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

Соединение с портом 143 передаёт данные, включая логин и пароль, в открытом виде. Для безопасного доступа используется механизм STARTTLS (команда STARTTLS после подключения) или защищённый порт 993 (IMAPS) с TLS с самого начала сессии. Аутентификация поддерживается через PLAIN, LOGIN, CRAM-MD5, DIGEST-MD5 и более современные механизмы, включая OAuth 2.0.

Применение

IMAP используется практически всеми современными почтовыми сервисами и клиентами — Thunderbird, Apple Mail, Microsoft Outlook, K-9 Mail, а также веб-почтой (Gmail, Яндекс.Почта, Mail.ru). В России протокол применяется в корпоративных почтовых системах и у крупных провайдеров. Для программной работы с IMAP существуют библиотеки для Python, PHP, Go и других языков.

Недостатки

Основной недостаток — зависимость от состояния сервера: при недоступности сервера доступ к почте ограничен (в отличие от POP3, где локальная копия полная). Также при большом объёме почты возможны задержки при синхронизации, а потребление трафика выше, чем у POP3.

Источники

  • RFC 3501 — Internet Message Access Protocol — Version 4rev1
  • RFC 9051 — Internet Message Access Protocol — Version 4rev2
  • RFC 2595 — Using TLS with IMAP, POP3 and ACAP
  • Крисенсен М. «Cyrus IMAP Server: A Synchronizing Mail Server»
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru