Skip to content

Модуль 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. Не позволяется создание и переименование папки, если имя папки совпадает с именем папки для шаблонов писем.

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

Модуль 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 станут видимыми
    • непочтовые Папки станут видимыми