MAPI (MAPI)
MAPI (англ. Messaging Application Programming Interface) — проприетарное API, основанное на COM-модели, а также программный интерфейс обработки сообщений от компании Microsoft, позволяющий приложениям работать с различными системами передачи электронных сообщений. MAPI позволяет получать, читать, создавать, отправлять сообщения, присоединять к ним файлы, получать доступ к присоединенным файлам и т. д.
Примерами приложений, использующих MAPI, являются Microsoft MAPI Controls и Microsoft Outlook.
Архитектура MAPI
[править | править код]MAPI обеспечивает единообразные способы взаимодействия приложений со множеством различных систем передачи электронных сообщений. Подсистема MAPI включает в себя:
- программные интерфейсы;
- спулер MAPI — отдельный процесс, посылающий сообщения в систему передачи электронных сообщений и принимающий от неё сообщения;
- общий интерфейс пользователя — диалоговые окна, при помощи которых пользователь может найти адрес, создать и отправить сообщение.
Между подсистемой MAPI и системами передачи сообщений находятся поставщики услуг, связывающие системы. Большинство систем передачи сообщений включает три вида услуг: поставщиков хранения сообщений, поставщиков адресной книги или каталогов и поставщиков транспорта сообщений. Существуют и другие, реже используемые поставщики, такие как поставщики захвата сообщений и поставщики профилей.
Сообщения создаются при помощи форм, путём ввода информации пользователем или программно, без участия пользователя. Перед отправкой сообщения поставщик хранилища сообщений проверяет уникальность каждого адресата и наличие всей необходимой для передачи сообщения информации. В случае успешной проверки, сообщение помещается в очередь исходящих сообщений. Если хранилище сообщений имеет сильную связь (то есть может связываться с ним напрямую, без использования интерфейса MAPI) с поставщиком транспорта и сообщение не требует дополнительной обработки, то оно посылается поставщику транспорта без использования спулера. В остальных случаях спулер при необходимости производит обработку сообщения и, основываясь на адресе получателя, находит подходящий для отправки сообщения поставщик транспорта.
Интерфейсы MAPI
[править | править код]Имеется несколько клиентских интерфейсов MAPI:
- MAPI — основной интерфейс, основан на технологии COM. Остальные API являются прослойкой между клиентским приложением и MAPI.
- Simple MAPI — содержит набор функций, обеспечивающих базовый уровень функциональности. Рекомендуется использовать только для обратной совместимости со старыми приложениями.
- Common Messaging Calls (CMC) — кроссплатформенное API, основанное на программном интерфейсе X.400 (XAPIA). Содержит набор функций для добавления в приложение простых возможностей работы с сообщениями.
- Collaboration Data Objects (CDO) Library (предыдущие версии назывались OLE Messaging Library, Active Messaging Library) — содержит объекты OLE-автоматизации для приёма и отправления электронной почты и работы с папками и с адресной книгой.
Формы
[править | править код]Формы MAPI предназначены для создания и просмотра сообщений. Для каждого класса сообщений необходима своя форма. MAPI определяет несколько классов сообщений и реализует формы для их просмотра. Каждая форма реализуется в виде исполняемого COM-сервера, называемого сервером форм. Для использования формы приложение через интерфейс форм MAPI обращается к менеджеру форм, который загружает необходимый сервер форм и устанавливает связь между ним и вызывающим приложением.
Поставщики услуг
[править | править код]Поставщики услуг реализуют объекты, используемые прежде всего MAPI, но некоторые из которых могут использоваться и клиентскими приложениями. Часть объектов реализуется всеми поставщиками услуг, остальные специфичны для одного типа поставщика. Следующие объекты могут быть реализованы поставщиками:
- Контейнер адресной книги — содержит элементы адресной книги; поставщик адресной книги может иметь один или несколько контейнеров адресной книги.
- Вложение — содержит дополнительные данные, связанные с сообщением.
- Элемент управления — кнопки, вызывающие обработку при их нажатии.
- Список рассылки — описывает группировку индивидуальных адресатов сообщений.
- Папка — содержит сообщения и контейнеры сообщений.
- Регистрация — обрабатывает информацию о событиях и запросы клиентов.
- Адресат сообщения — описывает индивидуального адресата сообщения.
- Сообщение — содержит информацию, которую можно послать адресатам при помощи системы электронных сообщений.
- Хранилище сообщений — иерархическая база данных сообщений.
- Поставщик — обрабатывает запуск и остановку поставщика.
- Захват спулера — производит специальную обработку входящих и исходящих сообщений.
- Состояние — обеспечивает доступ к состоянию поставщика услуг.
- Таблица — обеспечивает доступ к данным объекта в виде строк и столбцов, аналогично таблицы базы данных.
Open Source MAPI
[править | править код]До недавних пор Open Source реализация MAPI была не полной. Но на данный момент существует как минимум три open source проекта, работающих над реализацией протокола MAPI в библиотеках свободного и открытого ПО (FOSS) для последующего использования в других open source приложениях.
Этот список включает проект OpenMapi[1], MAPI4Linux от компании Zarafa (англ.) (также является частью OpenMapi) и libmapi[2], как часть проекта OpenChange[3], который в свою очередь используется в другом OpenChange подпроекте с названием Evolution-MAPI.[4] Evolution-MAPI — это агент (connector provider), который может быть установлен в популярном open source клиенте Evolution groupware.
Примечания
[править | править код]- ↑ OpenMapi.org . Дата обращения: 15 октября 2012. Архивировано 17 февраля 2012 года.
- ↑ MAPI Library . Дата обращения: 30 июля 2011. Архивировано 15 ноября 2011 года.
- ↑ OpenChange Архивировано 28 сентября 2004 года.
- ↑ Gnome Evolution Plugin Архивировано 26 июля 2011 года.