Открыть сервис

Simple MAPI

Simple MAPI — это упрощённый программный интерфейс (API) для взаимодействия приложений с системами электронной почты, входящий в состав спецификации MAPI (Messaging Application Programming Interface) от компании Microsoft. Simple MAPI предоставляет ограниченный набор функций, позволяющих приложениям отправлять и получать сообщения, а также работать с адресными книгами, не требуя глубокой интеграции с почтовым клиентом или сервером.

История

Simple MAPI был разработан корпорацией Microsoft в начале 1990-х годов как часть более широкой платформы MAPI, предназначенной для унификации обмена сообщениями в операционных системах Windows. Полная спецификация MAPI (Extended MAPI) представляла собой сложный объектно-ориентированный интерфейс, ориентированный на разработчиков почтовых клиентов и серверов. Simple MAPI, напротив, создавался как лёгкая альтернатива для обычных приложений (текстовых редакторов, офисных пакетов, бухгалтерских программ), которым требовалась базовая возможность отправки электронных писем.

Первая версия Simple MAPI была включена в состав Windows 3.1 и Microsoft Mail. В последующих версиях Windows, включая Windows 95, Windows 98, Windows NT 4.0 и Windows 2000, интерфейс оставался доступным, но его функциональность практически не расширялась. С появлением более современных технологий, таких как MAPI over HTTP и Graph API, Simple MAPI постепенно устаревал, однако продолжал поддерживаться в системах Windows вплоть до Windows 10 и Windows 11 для обеспечения обратной совместимости.

Архитектура и принцип работы

Simple MAPI реализован как набор функций, экспортируемых библиотекой динамической компоновки (DLL) — обычно mapi32.dll. Приложение, использующее Simple MAPI, вызывает эти функции, которые, в свою очередь, взаимодействуют с установленным почтовым клиентом (например, Microsoft Outlook, Outlook Express, Mozilla Thunderbird) через так называемый «провайдер MAPI» (MAPI provider). Провайдер — это компонент, который адаптирует вызовы Simple MAPI к конкретному почтовому приложению.

Основные функции Simple MAPI делятся на три группы:

При вызове MAPILogon приложение устанавливает сеанс связи с почтовым клиентом. В зависимости от настроек, пользователю может быть предложено ввести пароль или выбрать профиль. После успешного входа приложение может отправлять письма, используя MAPISendMail, которая принимает структуру MapiMessage, содержащую поля: тема, тело письма (в виде простого текста), список получателей, вложения и флаги.

Основные возможности

Simple MAPI предоставляет ограниченный, но достаточный для многих задач набор возможностей:

Ограничения

Simple MAPI имеет ряд существенных ограничений по сравнению с Extended MAPI:

Применение

Simple MAPI нашёл широкое применение в корпоративной среде, особенно в 1990-х и начале 2000-х годов. Типичные сценарии использования:

В современных приложениях Simple MAPI часто заменяется более современными API, такими как MAPI over HTTP (для Microsoft Exchange), Graph API (для Microsoft 365) или SMTP-библиотеками (например, System.Net.Mail в .NET). Однако в некоторых унаследованных (legacy) системах, особенно в государственных учреждениях и крупных предприятиях, Simple MAPI продолжает использоваться.

Примеры использования

В среде разработки на C++ или Visual Basic вызов Simple MAPI выглядит следующим образом:

```cpp

include <mapi.h>

// Отправка простого письма HINSTANCE hMAPI = LoadLibrary("mapi32.dll"); if (hMAPI) { LPMAPISENDMAIL lpMAPISendMail = (LPMAPISENDMAIL)GetProcAddress(hMAPI, "MAPISendMail"); if (lpMAPISendMail) { MapiMessage msg = {0}; msg.lpszSubject = "Тестовое письмо"; msg.lpszNoteText = "Это тело письма."; MapiRecipDesc recip = {0}; recip.ulRecipClass = MAPI_TO; recip.lpszName = "user@example.com"; msg.nRecipCount = 1; msg.lpRecips = &recip; lpMAPISendMail(0, 0, &msg, MAPI_DIALOG | MAPI_LOGON_UI, 0); } FreeLibrary(hMAPI); } ```

Безопасность и совместимость

При использовании Simple MAPI в современных версиях Windows могут возникать проблемы с безопасностью. Некоторые почтовые клиенты, особенно Microsoft Outlook, требуют специальных настроек для разрешения вызовов из внешних приложений. Например, в Outlook может быть включена защита от автоматической отправки писем (Outlook Object Model Guard), которая блокирует вызовы Simple MAPI без явного разрешения пользователя. Кроме того, в Windows 10 и 11 библиотека mapi32.dll может быть перенаправлена на MAPI32.dll из состава Outlook, что иногда приводит к несовместимости с другими почтовыми клиентами.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →