Поделиться через


Разработка поставщика хранилища сообщений MAPI

Область применения: Outlook 2013 | Outlook 2016

Как и другие поставщики служб MAPI, хранилища сообщений представляют собой библиотеки ДИНАМИЧЕСКОЙ компоновки (DLL), которые представляют службы базового механизма хранения для клиентских приложений MAPI и диспетчера очереди MAPI. Поставщик хранилища сообщений представляет базовый механизм хранения в виде иерархического набора папок и сообщений, которые могут использовать клиенты MAPI и диспетчер очереди MAPI.

На следующем рисунке показана базовая архитектура хранилища сообщений MAPI.

Архитектура хранилища сообщений

Архитектура хранилища сообщений

Вы можете реализовать поставщик хранилища сообщений, используя любой базовый механизм хранения. Однако необходимо учитывать проблемы с производительностью. Кроме того, базовый механизм хранения должен быть представлен в виде иерархической коллекции объектов MAPI. Эти требования означают, что хранилища сообщений обычно реализуются с помощью существующего продукта базы данных, который поддерживает иерархическое хранение объектов в базе данных и имеет программный интерфейс или четко определенную структуру файлов. Например, базы данных Microsoft Office Access, SQL и Oracle можно использовать в качестве базового механизма хранения. Некоторые продукты базы данных имеют наборы функций, упрощающие реализацию функций MAPI, поэтому на выбор продукта базы данных могут повлиять функции, которые должны поддерживаться поставщиком хранилища сообщений.

Использование существующей базы данных в качестве базового механизма хранения упрощает работу, так как обычно проще представить объекты базы данных клиентам MAPI в качестве объектов MAPI, чем реализовать собственный иерархический механизм хранения. Это позволяет обрабатывать операции MAPI на более высоком уровне, чем при реализации собственного иерархического механизма хранения. Например, поиск сообщения с определенной строкой темы довольно простой задачей создания и отправки соответствующего запроса базы данных, а не реализации сложных подпрограмм для поиска иерархического механизма хранения.

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

Клиенты mapI spooler и MAPI взаимодействуют с поставщиком хранилища сообщений для создания новых сообщений. Клиентские приложения делают это, когда пользователи составляют сообщение. Диспетчер очереди MAPI делает это при получении входящего сообщения. В любом случае новое сообщение обычно создается в папке "Входящие" хранилища сообщений, если оно есть.

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

Существует два важных типа поставщиков хранилища сообщений: те, которые могут выступать в качестве хранилища сообщений пользователя по умолчанию, и те, которые не могут. Хранилище сообщений по умолчанию — это хранилище, в котором клиентские приложения и диспетчер очереди MAPI могут выполнять любую задачу обмена сообщениями, например получать сообщения или создавать папки. Поставщик хранилища сообщений по умолчанию должен поддерживать несколько дополнительных функций, чем минимальное количество, необходимое для всех поставщиков хранилища сообщений.

См. также