CommuniGate Pro
Версия 5.2
Доступ
 
 
IMAP

IMAP Модуль

В IMAP модуле CommuniGate Pro реализован IMAP сервер. IMAP сервера позволяют клиентским приложениям (почтовым программам) получать сообщения из папок пользователя, используя Интернет протокол IMAP4rev1 (RFC2060) через TCP/IP сети.

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

IMAP модуль CommuniGate Pro поддерживает как незашифрованные, так и безопасные (SSL/TLS) соединения.

Интернет Протокол Доступа к Сообщениям (IMAP)

Интернет Протокол Доступа к Сообщениям позволяет работать с сообщениями, хранящимися в папках на удалённых почтовых серверах, непосредственно с компьютеров клиентов. Компьютер, на котором запущено приложение - почтовая программа (почтовый клиент), устанавливает соединение с компьютером почтового сервера и сообщает ему имя пользователя и пароль. Если указанному пользователю предоставляется доступ, то почтовое приложение сможет отправлять на почтовый сервер команды. Команды протокола указывают серверу выдать список всех сообщений в папке, загрузить определённые сообщения или удалить их, найти сообщения с определёнными атрибутами, передвинуть сообщения между папками и т.д.

IMAP Модуль CommuniGate Pro поддерживает различные Интернет стандарты (RFC), и имеет множество дополнительных уникальных возможностей.


Конфигурирование IMAP Модуля

Для того, что бы настроить параметры IMAP модуля, используйте Веб Интерфейс Администратора. Откройте страницу Доступ в разделе Установки:

Обработка
Уровень Журнала: Каналы: Приёмник
  Send 'Running' every:

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

Записи, помещённые IMAP модулем в Журнал работы Сервера, имеют пометку IMAP.

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

По умолчанию, Приёмник IMAP модуля принимает незашифрованные соединения на TCP порт 143 и безопасные соединения на TCP порт 993. Нажмите на ссылку Приёмник для того, что бы настроить порт Приёмника IMAP.

IMAP модуль поддерживает команду STARTTLS, которая позволяет почтовому клиенту устанавливать соединение в незащищённом режиме и затем переводить его в режим безопасного соединения.

Send 'Running' every
Если эта опция не установлена в значение Никогда, то IMAP модуль будет следить за длительностью выполнения операций APPEND, COPY и SEARCH. Если выполнение любой из этих операций превышает указанный здесь период времени, то модуль отправляет клиентскому приложению "непомеченный" ответ. Эта возможность может использоваться для того, что бы предотвратить возникновение ситуации тайам-аута у клиентского приложения; также она помогает при работе в конфигурациях с различными NAT-устройствами, которые склонны закрывать соединение, если оно некоторое время неактивно.

Одновременный Доступ

В отличие от множества других IMAP серверов, "блокирующих" открытые папки, IMAP модуль Сервера CommuniGate Pro спроектирован таким образом, что бы обеспечивать одновременный доступ к папке неограниченного числа клиентов.

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


Список Прав Доступа

IMAP модуль поддерживает RFC2086 (ACL расширение IMAP4). Это расширение протокола позволяет IMAP пользователям предоставлять доступ к своим папкам другим пользователям.

Дополнительную информацию о Списках Прав Доступа Папки (ACL) смотрите в разделе Папки.

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


Чужие (Общие) и Публичные Папки

CommuniGate Pro позволяет пользователям получать доступ к папкам других пользователей. Дополнительную информацию смотрите в разделе Папки.

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

Используя различных IMAP клиентов или Веб Интерфейс Пользователя, пользователь может добавить имя чужой папки (как, например ~sales/processed или ~public/news/company) в свой список подписки. Это приведёт к тому, что IMAP клиенты будут показывать чужую папку наряду с обычными папками пользователя и пользователь сможет работать с этой чужой папкой.

Некоторые IMAP клиенты (такие как Microsoft Outlook и Outlook Express) вообще не поддерживают работу с чужими папками. Для того, что бы эти клиенты получили доступ к совместно используемым папками других пользователей, может использоваться механизм Псевдонима Папки.


Аутентификация Пользователя

IMAP модуль позволяет пользователям использовать все Методы Аутентификации, поддерживаемые Сервером CommuniGate Pro.

Если опция Объявлять об небезопасных методах выключена, и соединение не зашифровано с помощью SSL/TLS, то Сервер добавляет ключевое слово LOGINDISABLED в список поддерживаемых возможностей аутентификации.


Непочтовые Папки

IMAP Модуль CommuniGate Pro обеспечивает доступ к папкам всех Классов (Календарь, Контакты и т.д.). Некоторые клиенты и/или пользователи могут быть поставлены в затруднительное положение, если они сталкиваются с Непочтовыми Папками.

Эти модули включают Непочтовые Папки в ответ IMAP команды LIST, если:


Предупреждения

IMAP Модуль CommuniGate Pro проверяет наличие сообщений с предупреждениями, отправленных аутентифицированному Пользователю. Предупреждающие сообщения передаются клиентской почтовой программе через стандартный код ответа IMAP [ALERT].

IMAP Модуль CommuniGate Pro проверяет наличие предупреждений сразу после аутентификации пользователя и может обнаруживать новые предупреждения и отсылать их пользователю в любое время в течении IMAP сессии.


Направления на Аутентификацию

IMAP Модуль поддерживает RFC2221 (Направления на Аутентификацию).
Как было объяснено в разделе
Доступ, все адреса пользователей, заданные в клиентских почтовых программах, обрабатываются через Маршрутизатор.
Если имя пользователя перенаправляется на внешний Интернет адрес (обслуживаемый SMTP модулем), то IMAP модуль возвращает отрицательный ответ и передаёт направление на аутентификацию. Если IMAP клиент поддерживает направления на аутентификацию, то он автоматически переключится на новый адрес.

Пример:
Пользователь j.smith перешёл с вашего сервера на сервер othercompany.com как пользователь John. Для того, что бы перенаправлять всю почту пользователя, вы создаёте запись псевдонима в таблице Маршрутизатора:
<j.smith> = John@othercompany.com
Теперь, если пользователь попытается зайти на ваш сервер как j.smith, то сервер будет отвергать это имя пользователя, но при этому будет выдавать направление на аутентификацию:
1234 NO [REFERRAL IMAP://John;AUTH=*@othercompany.com/] account has been moved to a remote system
Если клиентская почтовая программа поддерживает направления на аутентификацию, то она автоматически попытается соединится с сервером othercompany.com как пользователь John.

Мониторинг активности IMAP

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

Показано 3 из 3
ID Сетевой Адрес Пользователь Подсоединён Состояние Обрабатывает
9786[216.200.213.116]user1@domain2.dom3 минselecting a mailbox2 сек
9794[216.200.213.115]user2@domain1.dom34 секConnected to mailbox 
9803[216.200.213.115]2 секAuthenticating 
ID
Это поле содержит числовой идентификационный номер IMAP сессии. В Журнале CommuniGate Pro эта сессия отмечается как IMAP-nnnnn, где nnnnn - это идентификационный номер сессии.
Адрес
Это поле содержит IP адрес присоединившегося клиента.
Пользователь
Это поле содержит имя Пользователя (после успешной аутентификации).
Подсоединён
Это поле содержит время соединения (время, в течении которого открыта эта TCP/IP сессия.
Состояние
Это поле содержит или имя текущей операции, или, если никакой операции не производится, текущее состояние сессии (Authenticating, Selected и т.д.).
Обрабатывает
Если есть какая-нибудь активная IMAP операция, то это поле содержит время, прошедшее с момента начала операции.

Если IMAP соединение используется для MAPI сессии, то это строка отображается на зеленом фоне.

Статистика активности IMAP доступна через SNMP агент CommuniGate Pro.


Подробности реализации IMAP

В IMAP Модуле CommuniGate Pro реализовано множество расширений протокола IMAP. Реализация некоторых из этих расширений в CommuniGate Pro имеет свои особенности.

QUOTA
Каждый пользователь имеет свою Корневую Квоту право доступа.
NAMESPACE
Стандартный префикс "имени пользователя" в CommuniGate Pro соответствующий Домен.
UNSELECT
Эта команда IMAP эквивалентна команде CLOSE, но она не удаляет никакие сообщения, отмеченные как \Deleted

Дополнительные Расширения IMAP

В IMAP модуле CommuniGate Pro реализованы также несколько расширений, не являющихся частью IMAP стандарта и не включённые в существующие стандарты Расширения IMAP.

UNSELECT
Эта команда IMAP эквивалентна команде CLOSE, но она не удаляет никакие сообщения, отмеченные как \Deleted
COPY
После имени требуемой папки может может быть указан параметр ENCRYPTED certificateData, где certificateData либо PKI Сертификат в кодировке base64, либо символ звёздочка (*), ссылающийся на личный S/MIME Сертификат аутентифицированного пользователя.
Копируемые сообщения являются
S/MIME-зашифрованными при помощи указанного сертификата.
MOVE, UID MOVE
Эти команды IMAP эквивалентны командам COPY, но если сообщения были скопированы успешно, то они будут удалены. Если сообщения передвигались между папками одного и того же Пользователя, то Квота хранения не проверяется.
STATUS
Команда STATUS может использовать следующие дополнительные имена элементов данных:
INTERNALSIZE
Элемент данных, включаемый в ответ - число. Это число указывает размер папки (в том виде, как она хранится на сервере). Этот размер близок, но не обязательно совпадает с суммой значений атрибута RFC822.SIZE для всех сообщений, хранящихся в папке.
OLDEST
Элемент данных, включенных в ответ - строка типа date_time. Она указывает INTERNALDATE самого старого сообщения в папке. Если в папке нет сообщений, этот элемент данных в ответ не включается.
UNSEENMEDIA
Элемент данных, включаемый в ответ - число сообщений, которые имеют установленный флаг Media, но не имеют флага Seen.

Пример:
A001 STATUS mailbox (UNSEEN OLDEST INTERNALSIZE UNSEENMEDIA)
* STATUS mailbox (UNSEEN 14 OLDEST "23-Feb-2002 07:59:42 +0000" INTERNALSIZE 2345678 UNSEENMEDIA 1)
A001 OK completed
LIST
Наряду с опциями, описанными в расширении LISTEXT, команда LIST может использовать следующие дополнительные опции:
UIDVALIDITY, CLASS, MESSAGES, UIDNEXT, UNSEEN, INTERNALSIZE, OLDEST, UNSEENMEDIA

Элементы данных, включаемые в ответ, имеют следующий формат:

\option_name(option_value)
Пример:
A001 LIST (CHILDREN CLASS UNSEEN INTERNALSIZE) "" "ma%"
* LIST (\HasNoChildren CLASS("IPF.Contact") \UNSEEN(14) \INTERNALSIZE(2345678) \Unmarked) mailbox
A001 OK completed
Дополнительные флаги сообщений.
Так же поддерживаются IMAP флаги сообщений $MDN, $Hidden, $Media, что позволяет совершать операции с этими флагами сообщений. С помощью добавления флага $Service при "просмотре папки" можно легко убрать сообщение из списка показываемых сообщений.
ENABLE EXTENSIONS
После выполнения этой команды IMAP:
  • сообщения со специальным флагом сообщений $Service станут видимыми
  • Непочтовые Папки станут видимыми

Руководство CommuniGate® Pro. Copyright © 1998-2009, Stalker Software, Inc.