CommuniGate Pro
Версия 6.4
 

Модуль 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 используйте Веб Интерфейс Администратора. Откройте страницу Доступ в разделе Установки:

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

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

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

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

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

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

Посылать 'Running' каждые
Если эта настройка не установлена в значение Никогда, то модуль 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 клиенты вообще не поддерживают работу с чужими папками. Для того, чтобы эти клиенты получили доступ к совместно используемым Папками других пользователей, может использоваться механизм Псевдонима Папки.


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

Модуль 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 можно наблюдать с помощью Элементов Статистики CommuniGate Pro.


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

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

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

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

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

COPY
После имени папки назначения может быть указан параметр ENCRYPTED certificateData, где certificateData - либо PKI Сертификат в кодировке base64, либо символ звёздочка (*), ссылающийся на личный S/MIME Сертификат аутентифицированного пользователя.
Копируемые сообщения будут S/MIME-зашифрованными при помощи указанного сертификата.
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
APPEND
Команда APPEND может использовать дополнительные опции:
REPLACESUID(number)
Если указано это расширение, то после добавления нового сообщения в папку сообщение с указанным UID будет удалено (если оно существовало). Добавление и удаление выполняются одной транзакцией.
CHECKOLDEXISTS
Расширение должно использоваться совместно с расширением REPLACESUID. Когда оно указано, новое сообщение добавляется в папку назначения, только если там существует сообщение с UID, указанным с расширением REPLACESUID. Иначе генерируется ошибка.
Пример:
A001 APPEND "Черновики" (\Seen \Draft) "20-JAN-2010" (REPLACESUID) CHECKOLDEXISTS) {3450}"
+ Send the Message Сообщение
Дополнительные флаги сообщений.
Так же поддерживаются IMAP флаги сообщений $MDN, $Hidden, $Media, что позволяет совершать операции с этими флагами сообщений. С помощью добавления флага $Service при "просмотре папки" можно легко убрать сообщение из списка показываемых сообщений.
ENABLE EXTENSIONS
После выполнения этой команды IMAP:
  • сообщения со специальным флагом сообщений $Service станут видимыми
  • непочтовые Папки станут видимыми

Руководство CommuniGate Pro. Copyright © 2020-2023, АО СталкерСофт