Оболочка c++ mapi пытается получить адрес отправителя после входа в систему по умолчанию

Настройка протокола MAPI/HTTP

Выполните приведенные ниже действия, чтобы настроить протокол MAPI/HTTP для своей организации. В этих шагах предполагается, что вы уже настроили предварительные требования, описанные в разделе MAPI через HTTP в Exchange Server. После настройки (этапы 1-3) переходите к этапу 4, чтобы включить или отключить определенные сценарии разрешений на уровне организации, на уровне почтовых ящиков или на обоих уровнях.

  1. Конфигурация виртуального каталога. По умолчанию Exchange создает виртуальный каталог для MAPI по протоколу HTTP. Командлет Set-MapiVirtualDirectory используется для настройки виртуального каталога. Необходимо настроить внутренний URL-адрес, внешний URL-адрес или и то, и другое. Дополнительные сведения см. в статье Set-MapiVirtualDirectory.

    Например, чтобы настроить виртуальный каталог MAPI по умолчанию на локальном сервере Exchange Server, задав для внутреннего URL-адреса значение https://contoso.com/mapi, а для метода проверки подлинности — , выполните следующую команду:

  2. Конфигурация сертификата. Цифровой сертификат, используемый средой Exchange, должен содержать те же значения InternalURL и ExternalURL , которые определены в виртуальном каталоге MAPI. Дополнительные сведения об управлении сертификатами Exchange см. в разделе Цифровые сертификаты и шифрование в Exchange Server. Убедитесь, что сертификат Exchange является доверенным на клиентской рабочей станции Outlook и что ошибки сертификата отсутствуют, особенно при доступе к URL-адресам, настроенным в виртуальном каталоге MAPI.

  3. Правила сервера обновления. Убедитесь, что подсистемы балансировки нагрузки, обратные прокси-серверы и брандмауэры настроены так, чтобы разрешить доступ к виртуальному каталогу MAPI через HTTP.

  4. Выполните указанные ниже действия, чтобы включить протокол MAPI/HTTP во всей организации Exchange либо для одного или нескольких отдельных почтовых ящиков.

    Примечание.

    После выполнения приведенных ниже команд клиенты Outlook с включенным протоколом MAPI по HTTP увидят сообщение о перезапуске Outlook для использования MAPI по протоколу HTTP.

    Включите MAPI через HTTP в организации Exchange:

    Чтобы включить или отключить MAPI через HTTP на уровне организации, используйте командлет Set-OrganizationConfig с параметром MapiHttpEnabled . Допустимые значения:

    • $true: подключения MAPI по протоколу HTTP разрешены для всех почтовых ящиков в организации (если для определенного почтового ящика не отключен параметр MAPI по протоколу HTTP).

    • $false: подключения MAPI по ПРОТОКОЛу HTTP разрешены не для всех почтовых ящиков в организации (если только mapI через HTTP не включен в определенном почтовом ящике).

    В приведенном ниже примере показано, как разрешить подключения по протоколу MAPI/HTTP для всей организации.

    Включите MAPI через HTTP для отдельного почтового ящика:

    Чтобы включить или отключить MAPI через HTTP на уровне почтового ящика, используйте командлет Set-CasMailbox с параметром MapiHttpEnabled . Допустимые значения:

    • $null. Почтовый ящик соответствует параметрам на уровне организации. Это значение используется по умолчанию.

    • $true: включите MAPI через HTTP для почтового ящика. Если MAPI через HTTP отключена на уровне организации, она включена для почтового ящика.

    • $false: отключите MAPI через HTTP для почтового ящика. Если на уровне организации включен параметр MAPI по протоколу HTTP, он отключен для почтового ящика, поэтому почтовый ящик будет использовать подключения Outlook Anywhere.

    В приведенном ниже примере разрешаются подключения по протоколу MAPI/HTTP для одного почтового ящика.

Проверка подключений MAPI через HTTP

Сквозное подключение MAPI через HTTP можно проверить с помощью командлета Test-OutlookConnectivity. Чтобы использовать командлет Test-OutlookConnectivity, необходимо запустить службу диспетчера работоспособности Microsoft Exchange (MSExchangeHM).

В примере ниже проверяется подключение MAPI через HTTP от сервера Exchange с именем ContosoMail.

При успешной проверке возвращаются результаты, похожие на приведенный ниже пример.

Дополнительные сведения см. в разделе Test-OutlookConnectivity.

Журналы действий MAPI через HTTP находятся в указанных ниже папках.

  • %ExchangeInstallPath%Logging\MAPI Address Book Service\

  • %ExchangeInstallPath%Logging\MAPI Client Access\

  • %ExchangeInstallPath%Logging\HttpProxy\Mapi\

Возможности поддержки и необходимые компоненты

Соблюдайте приведенные ниже требования при включении протокола MAPI over HTTP.

Поддержка

Убедитесь, что ваши клиенты и серверы поддерживают протокол MAPI over HTTP, воспользовавшись приведенной ниже матрицей.

Продукт Exchange 2019 Exchange 2016 Exchange 2013 SP1 Exchange 2013 RTM Exchange 2010 SP3
Outlook 2013 с пакетом обновления 1 (SP1) и все более поздние версии Outlook MAPI/HTTP Мобильный Outlook Протокол MAPI over HTTP Мобильный Outlook Протокол MAPI over HTTP Мобильный Outlook Мобильный Outlook RPC Мобильный Outlook
Outlook 2010 с пакетом обновления 2 (SP2) с обновлениями KB2956191 и KB2965295 (14 апреля 2015 г.) MAPI/HTTP Мобильный Outlook Протокол MAPI over HTTP Мобильный Outlook Протокол MAPI over HTTP Мобильный Outlook Мобильный Outlook RPC Мобильный Outlook
Outlook 2013 RTM Мобильный Outlook Мобильный Outlook Мобильный Outlook Мобильный Outlook RPC Мобильный Outlook
Все более ранние версии Outlook Мобильный Outlook Мобильный Outlook Мобильный Outlook Мобильный Outlook RPC Мобильный Outlook

Предварительные требования

Для поддержки MAPI через HTTP с Exchange Server клиентами и серверами требуются следующие условия. Когда вы их установите, следуйте инструкциям из статьи Configure MAPI over HTTP, чтобы включить этот протокол в организации.

Создание Почтового Профиля

Когда MAPI-Коннектор CommuniGate Pro установлен на клиентской рабочей станции, вы можете создать почтовый профиль, который позволит Outlook и другим приложениям использовать сервисы MAPI CommuniGate Pro.

Откройте в Панели Управления пункт Mail («Почта») и нажмите кнопку Show Profiles. Появится список Почтовых профилей. Если программа установки MAPI-Коннектора CommuniGate Pro попросила пересоздать существующий почтовый Профиль, выберите старый Профиль и нажмите кнопку Remove(«Удалить»).

Нажмите на кнопку Add («Добавить») для того, что бы создать новый Профиль. В зависимости от установленной версии Outlook и Mail в Панели Управления вы можете увидеть различные диалоговые окна. Если вы видите диалоговое окно с опцией Additional Server Types («Дополнительные типы серверов»), то выбирайте её. Укажите там что Сервер CommuniGate Pro является сервисом (service), или сервером дополнительного типа («Additional server type»).

Вы так же можете добавить другие сервисы в тот же самый Профиль.

Вопросы, которые необходимо решить:

Я выкопал много связанных тем в google, включая наш stackoverflow. Вот список проблем, который я должен решить:

какая разница между сервером обмена через Интернет 365 и сервером локального обмена? (Я имею в виду, есть ли что-то особенное, на что я должен обратить внимание?) добавить несколько почтовых ящиков пользователей в один профиль (у MSDN слишком много информации, любое ключевое слово или интерфейс, которые я могу использовать?) как решить, что такое имя сервера Exchange для одной учетной записи office365 (например, Есть ли способ, как механизм автообнаружения, как имитировать его с помощью пользовательских кодов?) Как предотвратить проверку подлинности при настройке нового профиля o365? (Я еще не пришел сюда, но я думаю, что это будет моим сокровищем препятствия или позже).

Хранилище MAPI

Этот раздел содержит определения констант и идентификаторы интерфейсов, которые используются API, взаимодействующими с хранилищем MAPI.

Константа Определение Описание
fnevIndexing ((ULONG) 0x00010000) Поставщик хранилища может указать fnevIndexing в элементе ulEventType структуры NOTIFICATION, чтобы уведомлять индексатора о готовности объекта для индексации. Элемент info структуры NOTIFICATION содержит структуру EXTENDED_NOTIFICATION.
FS_NONE 0x00 Клиент может вызвать IFolderSupport::GetSupportMask и проверить возвращенную битовую маску. Параметр FS_NONE указывает, что папка не поддерживает общий доступ.
FS_SUPPORTS_SHARING 0x01 Клиент может вызвать IFolderSupport::GetSupportMask и проверить возвращенную битовую маску. Параметр FS_SUPPORTS_SHARING указывает, что папка поддерживает общий доступ.
INDEXING_SEARCH_OWNER ((ULONG) 0x00000001) Определяет процесс отправки индексатору уведомления о готовности объекта для индексации.
MNID_ID Определено в файле заголовка mapidefs.h пакета Microsoft Windows SDK Значение для поля ulKind структуры MAPINAMEID.
MNID_STRING Определено в файле заголовка mapidefs.h пакета Microsoft Windows SDK. Значение для поля ulKind структуры MAPINAMEID.
MSCAP_RES_ANNOTATION ((ULONG) 0x00000001) Если клиент указывает MSCAP_SEL_RESTRICTION в mscapSelector для IMSCapabilities::GetCapabilities, GetCapabilities может вернуть это значение, если магазин игнорирует недопустимые параметры в ограничении.
MSCAP_SECURE_FOLDER_HOMEPAGES ((ULONG) 0x00000001) Если клиент указывает MSCAP_SEL_FOLDER в mscapSelector для IMSCapabilities::GetCapabilities, GetCapabilities может вернуть это значение, если магазин является магазином по умолчанию, который поддерживает домашние страницы папок.
STORE_PUSHER_OK ((ULONG) 0X00800000) Клиент может использовать свойство PR_SUPPORT_MASK для определения характеристики хранилища сообщений. Установка поставщиком хранилища флага STORE_PUSHER_OK в битовой маске означает, что обработчик протокола MAPI не выполняет обход хранилища, и хранилище отвечает за отправку всех изменений в виде уведомлений индексатору для индексации сообщений.

Определения для пространств имен

Указанные ниже глобальные уникальные идентификаторы (GUID) представляют пространства имен для именованных свойств. Они индексируются с помощью обработчика протокола MAPI и предназначаются только для чтения.

Внимание!

Именованные свойства не должны использоваться для создания или изменения элементов.

Свойства MNID_STRING

Чтобы связать следующее символьное имя GUID с его значением, используйте макрос , определенный в файле заголовка guiddef.h пакета Windows SDK.

Известные ограничения

Протокол и Интерфейс для Прикладных Программ, реализованный в MAPI-Коннекторе, являются не Интернет стандартом, а собственным Интерфейсом для Прикладных Программ Корпорации Microsoft. Этот Интерфейс для Прикладных Программ не документирован полностью, что, в результате? может привести к тому, что некоторая (незначительная) функциональность Outlook не будет работать надлежащим образом. Компания CommuniGate Systems постоянно работает над устранением проблем такого рода, и регулярно выпускает обновления MAPI-Коннектора.

Существующий специальный список Известные проблемы MAPI содержит информацию об известных проблемах и о путях их решения. Если в работе MAPI-Коннектора возникают проблемы, пожалуйста, проверьте сначала, содержится ли проблема в этом списке.

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

Реализация алгоритма поиска клиентов MAPI

В следующей таблице перечислены четыре функции MFCMAPI, которые используются для выполнения настраиваемой реализации MAPI:

Function Описание
Получает путь библиотеки MAPI.
Получает ключ реестра почты MAPI.
Получает идентификатор Windows установки.
Получает путь компонента с помощью FGetComponentPath.

Так как MFCMAPI загружает по умолчанию реализацию MAPI по умолчанию, если вы хотите использовать другую реализацию MAPI, для этого необходимо явно направить ее. Это выполняется с помощью процедуры Session\Load MAPI .

Как работают эти функции

  1. MFCMAPI вызывает , передавая NULL для параметра клиента, для загрузки реализации MAPI по умолчанию.

  2. вызовы для чтения значений MSIComponentID, MSIApplicationLCID и MSIOfficeLCID.

  3. вызовы для открытия ключа реестра для почтового клиента по умолчанию.

  4. использует возвращаемую обработку реестра, чтобы найти значения для MSIComponentID, MSIApplicationLCID и MSIOfficeLCID.

  5. Значения MSIComponentID, MSIApplicationLCID и MSIOfficeLCID возвращаются в . затем передает их в .

  6. загружает библиотеку загона MAPI, Mapi32.dll, из каталога системы.

  7. затем извлекает адрес функции FGetComponentPath из Mapi32.dll, предполагая, что Mapi32.dll экспортирует FGetComponentPath.

  8. Если получение адреса FGetComponentPath из Mapi32.dll не удается, извлекает адрес из Mapistub.dll.

  9. затем вызывает FGetComponentPath, чтобы получить путь по умолчанию версии MAPI.

  10. затем возвращает этот путь вызываемой, которая загружает MAPI и явно ссылается на него, как описано в Link to MAPI Functions.

Примечание

  • Для поддержки локализованных копий MAPI для английских и не-английских локалов считываю значения для подкоев MSIApplicationLCID и MSIOfficeLCID . затем вызывает FGetComponentPath, сначала указывает MSIApplicationLCID как szQualifier, а затем указывает MSIOfficeLCID как szQualifier. Дополнительные сведения о ключах реестра для почтовых клиентов, поддерживаюных не английские языки, см. в сообщении Setting Up the MSI Keys for Your MAPI DLL.
  • Если MFCMAPI не получает путь для использования MAPI , он загружает библиотеку заглов MAPI из каталога системы.
  • Значение реестра MSMapiApps , о чем говорится в явном сопоставлении звонков MAPI к DLLs MAPI , применяется только при том, что используется библиотека STUB MAPI. Приложения, загружая определенную реализацию MAPI или загружая реализацию по умолчанию, не должны устанавливать ключ реестра MSMapiApps .

Устранение проблем

MAPI-Коннектор работает как посредник между MAPI приложениями (такими как Microsoft Outlook) и Сервером CommuniGate Pro. Сложности, с которыми пользователь может столкнуться с в работе, могут быть вызваны как ошибками (или недокументированными возможностями) клиента, так и проблемами непосредственно в программном обеспечении MAPI-Коннектора или Сервера. Для того, что бы помочь устранить проблему, MAPI-Коннектор может создавать подробный Журнал всех своих операций. Вы можете исследовать этот Журнал самостоятельно или отослать его в службу технической поддержки CommuniGate Systems.

Откройте панель Troubleshooting («Проблемы») в окне настройки MAPI-Коннектора CommuniGate Pro («CommuniGate Pro Service»):

Панель показывает версию обеих компонентов MAPI-Коннектора: библиотеку запускающую код на компьютере клиента и библиотеку с серверным кодом, полученную с Сервера CommuniGate Pro.

Выберите опцию Enable Logging («Вести журнал») для того, что бы MAPI-Коннектор начал вести Журнал. Журнал MAPI-Коннектора хранит только последние записи, таким образом размер файла Журнала не превысит значения, указанного в настройке Maximum Log File Size («Журнал не более»).

Используйте флажки для того, что бы указать, какие компоненты MAPI-Коннектора должны оставлять записи о своей активности в Журнале.

Нажмите на кнопку Show Me Log File («Показать файл») для того, что бы открыть директорию файлов, в которой храниться файл Журнала. Вы можете использовать эту возможность для того, что бы отправить файл Журнала по электронной почте в службу технической поддержки компании CommuniGate Systems.

Нажмите на кнопку Delete Log File («Очистить файл») для того, что бы очистить файл Журнала.

Используйте опции Compatibility («Совместимость») для настройки операций MAPI-Коннектора в смешанной операционной среде (одновременно используемых MAPI клиентов разных поколений).

Send in Outlook native message format
В некоторых редких случаях специальные сообщения (такие как запросы на Задачу или переадресованные Контакты), отправляемые через MAPI-Коннектор, могут неправильно интерпретироваться пользователями Outlook Exchange (или Outlook IMAP). Отметьте эту опцию для того, что бы решить эту проблему.
Conservative mass deletion
В некоторых конфигурациях Outlook функция Автоархивирования может удалять большие объемы сообщений. Для избежания этой проблемы выберите эту опцию.
Always convert RTF to HTML
Выбор этой опции приведёт к тому, что MIME части text/rtf в исходящих сообщениях будут преобразованы в HTML формат, поддерживаемый в большем количестве клиентских почтовых приложений.
Do not display "Server transaction in progress..." dialog
Во время длинных транзакций Коннектор показывает окно с информацией о ходе их выполнения. Если вы не хотите этого, выберите эту опцию.
Show reports in Outlook native format
Outlook может использовать специальную форму для отображения сообщений с уведомлением о недоставке, предоставляющую возможность отослать недоставленные сообщения повторно. Для того, чтобы это возможность работала корректным образом, сообщения о недоставке должны включать в себя полное недоставленное сообщение, что происходит не всегда.
Do not respond to requests for read receipts
Отправитель сообщения может запросить отправки уведомления в свой адрес о том, что вы открыли сообщение для прочтения. Для того, что бы игнорировать эти запросы, выберите эту опцию.

Совмещение конфигураций протокола MAPI/HTTP и внешних или внутренних подключений

Помимо параметров организации и почтовых ящиков, описанных ранее в этом разделе, можно использовать параметр MapiBlockOutlookExternalConnectivity в командлете Set-CasMailbox , чтобы разрешить или запретить внешние подключения Outlook Anywhere или MAPI через HTTP к определенному почтовому ящику. Допустимые значения:

  • True: к почтовому ящику разрешены только внутренние подключения.

  • False: к почтовому ящику разрешены внутренние и внешние подключения. Это значение используется по умолчанию.

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

Значение MapiHttpEnabled в Set-OrganizationConfig Значение MapiHttpEnabled в Set-CasMailbox Значение MapiBlockOutlookExternalConnectivity в Set-CasMailbox Результат автообнаружения
$true $null $false MAPI/HTTP, внутренние и внешние
$true $null $true MAPI/HTTP, только внутренние
$true $true $false MAPI/HTTP, внутренние и внешние
$true $true $true MAPI/HTTP, только внутренние
$true $false $false Мобильный Outlook, внутренние и внешние
$true $false $true Мобильный Outlook, только внутренние
$false $null $false Мобильный Outlook, внутренние и внешние
$false $null $true Мобильный Outlook, только внутренние
$false $true $false MAPI/HTTP, внутренние и внешние
$false $true $true MAPI/HTTP, только внутренние
$false $false $false Мобильный Outlook, внутренние и внешние
$false $false $true Мобильный Outlook, только внутренние

Работа в Автономном режиме

Когда вы работаете в Автономном режиме, MAPI-Коннектор не имеет доступа к сообщениям, хранящимся на сервере CommuniGate Pro. Для того, что бы иметь возможность работать продуктивно, вы должны убедиться, что все необходимые вам сообщения хранятся в локальном кэше MAPI-Коннектора. Вы можете задавать опции кэширования отдельно для каждой папки.

Через пункт Options («Параметры») в меню Tools («Сервис») программы Outlook откройте диалоговое окно Options («Параметры»). Затем откройте панель CommuniGate Pro:

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

Используйте в Outlook меню Tools -> CommuniGate Pro Server (Сервис -> Сервер CommuniGate Pro) для синхронизации изменений, сделанных вами в Автономном режиме с сервером CommuniGate Pro.

Синхронизация происходит при запуске операций Отправки/Приёма почты (вручную или автоматически, с использованием расписания).

Mark to Download Message(s)
Сообщения, выбранные в Просмотре Папки в Outlook будут отмечены и при следующей операции Отправления/Приёма почты будут загружены целиком.
Mark to Delete Message(s)
Сообщения, выбранные в Просмотре Папки в Outlook будут отмечены и при следующей операции Отправления/Приёма почты будут удалены с Сервера.
Unmark Selected Headers
Отменяет все операции с сообщениями, выполненные при Просмотре Папки Outlook работе в автономном режиме и ожидающие выполнения на сервере.

Чтение сведений о реализации MAPI из реестра

  1. Ключи реестра, которые указывают настраиваемый DLL для почтового клиента, находятся под ключом почтового клиента.

    В следующей таблице описаны следующие клавиши:

    Клавиша Описание
    MSIComponentID Идентификатор категории Windows установки PublishComponent (GUID), который определяет DLL, экспортирует простые вызовы MAPI или MAPI. Если установлено, этот ключ имеет приоритет над ключом DLLPath или DLLPathEx .
    MSIApplicationLCID Идентификатор locale (LCID) для приложения. Первое строковая величина определяет под ключ от и последующие значения строки определяют значения реестра под этим ключом, которые содержат сведения о локальном уровне.
    MSIOfficeLCID LCID для Microsoft Office. Первое строковая величина определяет под ключ от строки и последующие значения строки определяют значения реестра под этим ключом.

    Получение сведений из этих ключей.

  2. Передай значения, полученные на предыдущем шаге, в функцию FGetComponentPath . FGetComponentPath — это функция, экспортируемая библиотекой загвоздки MAPI Mapistub.dll. Возвращает путь настраиваемой версии MAPI.

Преимущества протокола MAPI через HTTP

MAPI по протоколу HTTP предоставляет клиентам, поддерживающим его, следующие преимущества:

  • Обеспечение дальнейших нововведений в проверку подлинности благодаря использованию протокола на основе HTTP.

  • Обеспечивает более быстрое повторное подключение после прерывания связи, так как необходимо перестроить только TCP-подключения (а не подключения RPC). Примеры разрывов связи приведены ниже.

    • Гибернация устройства

    • Замена проводной сети на беспроводную или сеть мобильной связи

  • Предоставление контекста сеанса, не зависящего от подключения. Сервер поддерживает контекст сеанса в течение настраиваемого периода времени, даже если пользователь изменяет сети.

Явная компоновка

Так как клиент MAPI по умолчанию поддерживает установку по запросу с помощью установщика Windows (MSI), вы можете разрабатывать приложения для обмена сообщениями непосредственно на заглушки MapI Outlook вместо использования библиотеки MAPI и заглушки Windows MAPI. В правой части предыдущего рисунка показан пример процесса вызова функции MAPI, начиная с приложения MAPI, которое ищет путь и имя библиотеки DLL для заглушки MapI Outlook (шаг 2 в следующем разделе) и выполняет вызовы функций в заглушек MapI Outlook (шаг 3 в следующем разделе). В следующей процедуре показано, как вызывать функции MAPI с помощью явной компоновки.

Примечание

Эти сведения об явной компоновке могут быть лишними для ваших потребностей с появлением MAPIStubLibrary.lib, рассмотренного в следующем разделе. Как и неявная модель, новая библиотека управляет всем и реализует явную логику связывания, которая загружает MAPI Outlook напрямую.

Дополнительные сведения об явных связываниях см. в разделе «Явное связывание».

Вызов элементов API MAPI без библиотеки MAPI и заглушки Windows MAPI

В файле программы создайте глобальный список указателей функций для каждого элемента API MAPI, который вы используете.
В следующем примере показан этот шаг.

Создайте функцию, которая инициализирует функции MAPI для связывания с библиотекой DLL MAPI клиента MAPI по умолчанию (например, Msmapi32.dll Microsoft Outlook). В этой функции выполните следующие действия:

Загрузите mapi32.dll из соответствующего системного каталога.
Свойство
Значение
x64 или x86 в собственном коде

%windir%\system32\mapi32.dll
x86 в режиме WoW

%windir%\syswow64\mapi32.dll

Вызовите функцию FGetComponentPath , чтобы получить путь и имя DLL, реализующее подсистему MAPI. Дополнительные сведения см

в разделе «Выбор конкретной версии MAPI для загрузки».

Загрузите библиотеку DLL, вызвав функцию LoadLibrary.

Инициализировать массив указателей функции MAPI путем вызова функции GetProcAddress.

В следующем примере показаны предыдущие шаги.

Наконец, вызовите функцию, созданную на шаге 2 в приложении для обмена сообщениями, прежде чем вызывать элементы API MAPI.

Внимание!
Перед закрытием приложения необходимо неинициализировать подсистему MAPI.

В следующем примере показан этот шаг:

Разрешение Совместного использования Папки

Вы можете задать Список Прав Доступа для ваших папок для того, что бы предоставить доступ к этим папкам другим пользователям CommuniGate Pro.

Выберите папку в Списке Папок Outlook и затем, используя элемент меню Properties, откройте диалоговое окно Свойства. Откройте панель Permission:

Используйте кнопку Add («Добавить») и Remove («Удалить») чтобы указать пользователей и другие идентификаторы, которые должны иметь доступ к объекту.

Выберите идентификаторы из списка и используйте соответствующие флажки, чтобы предоставить требуемые права этому идентификатору

Дополнительную информацию о Списке Прав Доступа к папкам смотрите в разделе .
Обратите внимание: для того, что бы указать в Вид Папки по умолчанию, пользователь должен иметь Право Доступа к Папке Управлять

MAPIStubLibrary.lib

Появление Microsoft Outlook 2010, русская версия и 64-разрядных MAPI, теперь расширяемых до Microsoft Outlook 2013, требует больше, чем традиционный 32-разрядный API для полной реализации. Новый проект, библиотека заглушки MAPI, опубликованная на веб-сайте CodePlex, предоставляет замену drop-in для Mapi32.lib, которая поддерживает создание 32-разрядных и 64-разрядных приложений MAPI. MAPIStubLibrary.lib устраняет необходимость явного связывания с MAPI, и после его сборки можно удалить Mapi32.lib из параметров компоновщика, заменив его mapIStubLibrary.lib; Дальнейшие изменения в коде не требуются. Это также устраняет необходимость в написании кода LoadLibrary, GetProcAddress и FreeLibrary для обработки новых экспортов, включенных в этот файл библиотеки, но не в Файл Mapi32.lib, который потребуется при использовании явной компоновки.

Ниже перечислены некоторые новые функции, связанные с этой библиотекой, которые недоступны в Mapi32.lib.

  • GetDefCachedMode
  • HrGetGALFromEmsmdbUID
  • HrOpenOfflineObj
  • MAPICrashRecovery
  • OpenStreamOnFileW
  • WrapCompressedRTFStreamEx

Альтернативным методом включения библиотеки заглушки MAPI является копирование исходных файлов MapiStubLibrary.cpp и StubUtils.cpp непосредственно в проект и удаление всех ссылок на Mapi32.lib и любой код, явным образом ссылаемый на MAPI.

Чтобы получить доступ к файлам библиотеки заглушки MAPI, а также получить сведения о том, как создать и интегрировать ее в проект, а также вопросы об этой библиотеке, например о том, когда и зачем ее использовать, см. в библиотеке заглушки MAPI. на сайте CodePlex.

Обзор технологии, используемой MAPI-Коннектором

MAPI означает Messaging Application Programming Interface (Интерфейс для Прикладного Программирования обмена Сообщений); он является компонентом системы, которую корпорация Microsoft включила в операционные системы Windows и используется приложениями Windows.

Инфраструктура MAPI вводит дополнительный уровень абстракции. Windows приложения не взаимодействуют непосредственно с сервером (или иным другим «хранилищем данных»). Вместо этого, приложения отправляют запросы на работу с сообщениями (типа «показать содержимое папки», «загрузить сообщение номер Х» и т.д.) компоненту MAPI, который, в свою очередь, использует установленный модуль «Коннектор» для отправки этих запросов на сервер Exchange, в хранящиеся локально «персональные папки», на факс-сервер и т.д.

Расширяемая природа архитектуры MAPI делает возможным создание дополнительных «Коннекторов», которые могут взаимодействовать с различными серверами. Одной из проблем, которую должен решать такой Коннектор, является формат данных: Приложения Windows отправляют объекты данных через MAPI в модуль Коннектор в так называемом формате «MAPI объекта», в действительности имеющего мало общего с любым Интернет форматом. MAPI-Коннектор CommuniGate Pro преобразовывает данные MAPI в один из стандартных Интернет форматов и сохраняет преобразованные «объекты сообщений» как стандартные Интернет сообщения в папке CommuniGate Pro. Когда осуществляется чтение данных из папок на сервере, MAPI-Коннектор CommuniGate Pro преобразовывает (транслирует) сообщения обратно в формат «MAPI-объектов» и передает преобразованные объекты в Windows и MAPI приложения (такие, как Outlook).

MAPI-Коннектор CommuniGate Pro действует как MAPI-провайдер. Он принимает MAPI-запросы из Microsoft Outlook, работающего в режиме корпоративной рабочей группы (Outlook 98, Outlook 2000, Outlook XP, Outlook 2002 и более поздние), а также запросы от других приложений Windows. Затем MAPI-Коннектор преобразовывает эти запросы в расширенные команды IMAP и посылает их на сервер CommuniGate Pro.

MAPI-Коннектор CommuniGate Pro также выполняет преобразование данных между «объектами» — собственным форматом данных Microsoft и стандартными форматами данных Интернет. Благодаря использованию стандартных форматов Интернет, к сообщениям, сохранённым MAPI-Коннектором CommuniGate Pro может быть получен доступ через почтовые клиенты, работающие по стандартам POP3 или IMAP, через Веб Интерфейс Пользователя CommuniGate Pro или любой клиент XIMSS.

MAPI-Коннектор CommuniGate Pro работает в TCP/IP сетях и должен быть настроен на использование порта для незашифрованного соединения (не TLS) с вашим сервером CommuniGate Pro (стандартный порт IMAP 143).

MAPI-Коннектор CommuniGate Pro поддерживает работу как по незашифрованному, так и по безопасному (SSL/STARTTLS) соединению и может использовать и незащищённые, и безопасные CRAM-MD5 методы Аутентификации.

MAPI-Коннектор CommuniGate Pro состоит из двух частей (совместно используемых библиотек). Часть запускающая код должна быть установлена на рабочей станции Windows. Она обеспечивает интерфейс для конфигурации и используется для соединения с сервером CommuniGate Pro. Основная функциональность MAPI-Коннектора реализована как совместно используемая библиотека, хранящаяся в директории приложений Сервера; эта часть называется серверный код. Когда запускающая код часть MAPI-Коннектора соединяется с Сервером CommuniGate Pro, Сервер отправляет часть с серверным кодом MAPI-Коннектора на компьютер клиента. Этот метод позволяет вам производить текущие обновления MAPI-Коннектора, обновляя только серверную часть программного обеспечения CommuniGate Pro и не запускать Установщик MAPI-Коннектора на всех клиентских рабочих станциях.

Примечания

Функция MAPIInitialize увеличивает счетчик ссылок MAPI для подсистемы MAPI, а функция MAPIUninitialize уменьшает внутреннее количество ссылок. Таким образом, число вызовов одной функции должно быть равно количеству вызовов другой. ФУНКЦИЯ MAPIInitialize возвращает S_OK, если MAPI не был инициализирован ранее.

Клиент или поставщик услуг должен вызвать MAPIInitialize перед выполнением любого другого вызова MAPI. Если этого не сделать, вызовы клиента или поставщика услуг возвращают MAPI_E_NOT_INITIALIZED значение.

При вызове MAPIInitialize из многопоточного приложения задайте для параметра lpMapiInit MAPIINIT_0 структуру, которая объявлена следующим образом:

MAPIINIT_0 MAPIINIT= { 0, MAPI_MULTITHREAD_NOTIFICATIONS}

и вызовите:

MAPIInitialize (&MAPIINIT);

При объявлении этой структуры MAPI создает отдельный поток для обработки окна уведомлений, который продолжается до тех пор, пока число ссылок инициализации не будет равно нулю. Служба Windows должна задать элемент ulflags структуры MAPIINIT_0, на которую указывает lpMapiInit, MAPI_NT_SERVICE.

Примечание

Вы не можете вызывать MAPIInitialize или MAPIUninitialize из функции Win32 DllMain или любой другой функции, которая создает или завершает потоки. Дополнительные сведения см. в разделе «Использование Thread-Safe объектов».

MAPIInitialize не возвращает дополнительные сведения об ошибке. В отличие от большинства других вызовов MAPI, значения возвращаемых значений строго определяются в соответствии с конкретным этапом инициализации, которая завершилася сбоем:

  1. Проверяет параметры и флаги.

    MAPI_E_INVALID_PARAMETER или MAPI_E_UNKNOWN_FLAGS. Вызывающий объект передал недопустимый параметр или флаг.

  2. Инициализирует разделы реестра, необходимые MAPI, и подтверждает тип операционной системы. Этот шаг выполняется только в том случае, если клиентский процесс выполняется как служба в Windows и устанавливает флаг MAPI_NT SERVICE в MAPIINIT_0 структуре.

    MAPI_E_TOO_COMPLEX. Вызывающий процесс — это Windows и не удалось инициализировать разделы реестра, необходимые MAPI.

    Дополнительные сведения могут быть доступны в журнале событий приложения.

  3. Проверьте совместимость MAPI с OLE, а затем инициализйте OLE.

  4. Проверяет совместимость между текущими версиями OLE и MAPI.

    MAPI_E_VERSION. Версия OLE, установленная на рабочей станции, несовместима с этой версией MAPI.

  5. Инициализирует OLE.

    Только на этом шаге эта функция может возвращать код ошибки, не указанный здесь. Любая ошибка, не указанная здесь, должна поступать из функции OLE CoInitialize.

  6. Инициализирует глобальные переменные для каждого процесса.

    MAPI_E_SESSION_LIMIT. MAPI настраивает контекст, относя следующий за текущим процессом. Сбои могут возникать в Win16, если количество процессов превышает определенное число, или в любой системе, если доступная память исчерпана.

  7. Инициализирует общие глобальные переменные всех процессов.

    MAPI_E_NOT_ENOUGH_RESOURCES. Недостаточно системных ресурсов для завершения операции.

  8. Инициализирует обработчик уведомлений, создает его окно и его поток, если его запрашивает флаг MAPI_MULTITHREAD_NOTIFICATIONS уведомления.

    MAPI_E_INVALID_OBJECT. Может завершиться ошибкой, если системные ресурсы исчерпаны.

  9. Загружает и инициализирует поставщик профилей. Проверяет, может ли MAPIInitialize получить доступ к разделу реестра, в котором хранятся данные профиля.

    MAPI_E_NOT_INITIALIZED. Поставщик профилей обнаружил ошибку.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: