Все о почте




Описание протокола IMAP

Автор http://www.sources.ru   
30.10.2006 г.
Оглавление
1. Описание протокола IMAP
2. Основные команды IMAP
IMAP протокол

Протокол IMAP4 (Internet Message Access Protocol) позволяет клиентам получать доступ и манипулировать сообщениями электронной почты на почтовом сервере.

Существенным отличием протокола IMAP4 от протокола РОРЗ является то, что IMAP4 поддерживает работу с системой каталогов (или папок) удаленных сообщений так же, как если бы они располагались на локальном компьютере. IMAP4 позволяет клиенту создавать, удалять и переименовывать почтовые ящики, проверять наличие новых сообщений и удалять старые. Благодаря тому что IMAP4 поддерживает механизм уникальной идентификации каждого сообщения в почтовой папке клиента, он позволяет читать из почтового ящика только сообщения, удовлетворяющие определенным условиям или их части, менять атрибуты сообщений и перемещать отдельные сообщения. Структура папок в значительной степени зависит от типа почтовой системы, но в любой системе у клиента есть специальный каталог INBOX, куда попадают поступающие клиенту сообщения.

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

Протокол IMAP4 работает поверх транспортного протокола, который обеспечивает надежный и достоверный канал передачи данных между клиентом, и сервером IMAP4. При работе по TCP, IMAP4 использует 143-й порт. Команды и данные IMAP4 передаются по транспортному протоколу в том виде, в каком их отправляет сервер или пользователь.

Принцип передачи данных IMAP4 такой же как и у других подобных протоколов. Сначала клиент и сервер обмениваются приветствиями. Затем клиент отправляет на сервер команды и данные. Сервер, соответственно, передает клиенту ответы на обработку команд и данных. После завершения обмена канал закрывается.

Если сервер использует таймер контроля времени соединения, он должен быть установлен не менее чем на 30-минутный промежуток "неактивности" клиента, т. е. если сервер в течение 30 минут получает хотя бы одну команду, таймер сбрасывается.

Весь обмен данными между клиентом и сервером организован в виде строк, завершающихся символами , либо в виде последовательности байт заданной длины. Каждая команда клиента начинается с идентификатора или тега команды. Тег, как правило, представляет собой короткую строку, состоящую из букв и цифр, (например, А0001,А0002 и т. д.). Тег является уникальным идентификатором данной команды клиента. Ответы сервера или следующие команды клиента могут ссылаться на данную команду по ее тегу.

Каждая команда клиента начинается с новой линии. В тех случаях, когда команда передает поток данных заданной длины или когда команда требует ответа с сервера, для того чтобы продолжить работу (например, при аутентификации), она может занимать несколько строк.

Строки данных, передаваемые с сервера в ответ на команду клиента, могут не содержать тег, а содержать символ "*". Это означает, что они являются промежуточными строками потока данных ответа, а идентификатор их команды содержится в последней строке потока. В такой поток данных не может вклиниться другая команда.

Если сервер обнаружил ошибку в команде, он отправляет уведомление BAD клиенту с тегом неправильной команды. Если команда успешно обработана - возвращается уведомление ОК с тегом команды. Если команда вернула отрицательный результат, например, в случае невозможности выполнить данную команду - возвращается уведомление NO с тегом невыполненной команды.

Важной особенностью протокола IMAP является то, что взаимодействие клиента сервером не строится по принципу "запрос-ответ", в котором каждая из сторон "ходит" по очереди. Клиент может отправить новую команду на сервера дожидаясь ответа на предыдущую, естественно, когда эти команды не взаимосвязаны или ответ одной не повлияет на результат другой. Сервер моет обрабатывать несколько команд одновременно и отвечать на каждую из них по ее окончанию. При этом ответ на более позднюю команду может поступить раньше, поэтому ответ сервера всегда содержит тег той команды, к которой он относится.

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

Каждое общение в почтовой системе для работы с IMAP имеет уникальный идетификатор, по которому можно получить доступ к этому сообщению. УНИКАЛЬНЫЙ идентификатор UID представляет собой 32-битное число, которое идентифицирует сообщение в данной папке. Каждому сообщению, попавшему папку, присваивается максимальное число из UID-сообщении попавших данную папку ранее. Уникальные идентификаторы сообщении сохраняются от сессии к сессии и могут использоваться, например, для синхронизации каталогов мобильных пользователей.

Каждая пара в системе также имеет уникальный действительный идентификатор (IDVALIDITY). Вместе с UID-сообщение эта пара образует 64-битное чию, идентифицирующее каждое сообщение. Если UID-сообщение сохраняет постоянным, то UIDVALIDITY данной папки в текущей сессии должен быть больше, чем в предыдущей сессии.

Кроме уникального идентификатора, сообщение в системе IMAP имеет порядковый номер, т.е. все сообщения в данном почтовом ящике последовательно нумеруются. Если в почтовый ящик добавляется новое сообщение, ему присваивается номер на I больше количества сообщений в почтовое ящике. При удалении какого-либо сообщения из данной папки порядковые номера всех сообщений пересчитываются, поэтому порядковый номер сообщения может меняться во время сессии, Большинство команд IMAP4 работают с порядковыми номерами сообщений, а не с UID.

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

  • Seen - обозначает, что данное сообщение было прочитано.
  • Answered- на сообщение был дан ответ.
  • Deleted - сообщение помечено на удаление.
  • Draft - формирование данного сообщения еще не завершено.
  • Recent - сообщение "только что" поступило в почтовый ящик, т. е. данная сессия - первая, которая может прочитать это сообщение.
  • Recent - пример флага, который не сохранится в следующей сессии.

Кроме того, на сервере IMAP хранятся дата и время получения сообщения сервером. Например, если сообщение получено по SMTP, то фиксируется дата и время доставки по адресу назначения, общий размер сообщения, структура сообщения (MIМЕ-структура).



 
« Почтовые протоколы   Описание протокола POP3 »

Какой формат писем вы предпочитаете?


Форум

есть ли быстрый фильтр по папкам?
куда такой ког можно вставить?
Автор: timat
[email protected]:01
Бизнес в Турции: просто, прибыльно, безо...
специалисты компании «совет» придут на помощь в турции если вы хотите:...
Автор: SOVET1458
[email protected]:41
«Биржевой лидер»: Mail.ru вводит поиск л...
Единственным отличием было то, что людей можно было искать только в со...
Автор: Последние новости
[email protected]:38
Поиск Mail.ru научился искать людей в со...
В настоящее время поиск по пользовательским профилям осуществляется в ...
Автор: Последние новости
[email protected]:24
Поиск Mail.ru распространят на социальны...
По сообщению источника, на стартовом варианте новой функции можно буде...
Автор: Последние новости
[email protected]:52
Mail.ru, как и "Яндекс", научи...
Аналогичная функция есть и в Яндексе. Наряду с вертикалью в основном п...
Автор: Последние новости
[email protected]:59
У Почты Mail.Ru появился испанский интер...
Почта Mail.Ru запустила испанскую версию интерфейса. Переключиться на ...
Автор: Последние новости
[email protected]:50
хранение отправленных
День бодрый!! Вопрос таков! Есть почтовый сервер и есть Outlook 201...
Автор: dfcvova
[email protected]:55
© 2006-2022 AboutMail.ru