Microsoft Messaging API
(Продолжительность занятия 30 минут)
В состав ОС семейства Windows входит интерфейс прикладного программирования коммуникационных приложений Messaging Application Programming Interface (MAPI), позволяющий разрабатывать приложения для доступа к почтовой, факсимильной и другим видам информации. На этом занятии Вы узнаете о преимуществах MAPI и принципах его работы.
Изучив материал этого занятия,
Вы сможете:
- сопоставить интерфейсы Simple MAPI, Common Messaging Calls и Extended MAPI;
- перечислить преимущества MAPI;
- назвать два элемента управления MAPI и рассказать об их назначении;
- с помощью элементов управления MAPI снабдить приложение Microsoft Visual Basic средствами работы с электронной почтой.
Архитектура MAPI
Подсистема MAPI позволяет снабдить любое Windows-приложение средствами доступа к сообщениям. Это упрощает выполнение таких операций среды рабочей группы, как совместное использование информации. Кроме того, стандарт MAPI не ограничивает компании в выборе коммуникационных систем и приложений. Поскольку MAPI — часть операционной системы Windows, все эти системы и приложения могут быть интегрированы с рабочим столом пользователя.
MAPI включает функции и объектно-ориентированные интерфейсы, необходимые клиентскому приложению и поставщику услуг MAPI.
MAPI можно применять для создания приложений, снабженных средствами для работы с почтой. Компоненты ядра MAPI позволяют без труда подключать любые подобные программы и приложения для рабочих групп к MAPI-совместимым информационным службам. Например, воспользовавшись драйверами MAPI, можно подключить Microsoft Exchange к большинству открытых или закрытых почтовых систем.
Внешний, или клиентский, программный интерфейс MAPI состоит из трех частей. Базовые интерфейсы — Simple MAPI и Common Messaging Calls (CMC) — адресованы приложениям, которым необходимы лишь основные почтовые функции. Интерфейс Extended MAPI предназначен для создания полнофункциональных почтовых систем.
Simple MAPI
В состав Simple MAPI входят базовые функции, позволяющие Вам добавить в приложение (например, в электронную таблицу или в текстовый редактор) средства работы с почтой. Simple MAPI также применяют для построения пользовательских коммуникационных приложений. Хотя функциональные возможности Simple MAPI ограничены и их можно использовать только в среде Windows, они позволяют:
- регистрироваться в коммуникационной системе и выходить из нее; искать и просматривать сообщения;
- составлять сообщения, добавляя адреса получателей;
- включать в письма вложения;
- сохранять и отправлять сообщения.
- Common Message Calls
Как и Simple MAPI, CMC содержит функции, средствами которых Вы без труда снабдите свое приложение средствами работы с почтой. Его также применяют и для создания собственных коммуникационных приложений. CMC предназначен для минимизации числа вызовов функций, необходимых для отправки и приема сообщений. Например, чтобы послать сообщение, достаточно вызвать всего одну функцию, а чтобы принять — две. Вот отличительные характеристики CMC:
- независимость от операционной системы и аппаратуры, используемых почтовой службой;
- поддержка различных сетевых платформ;
- одновременный доступ к нескольким почтовым службам.
Примечание. SDK для Simple MAPI и Common Messaging Calls опубликованы на
компакт-дисках Microsoft Developer Network (MSDN).
Extended MAPI
Extended MAPI — это более сложный, объектно-ориентированный API, предназначенный для приложений, которые постоянно и интенсивно взаимодействуют с почтовой системой. Extended MAPI позволяет:
- управлять большим объемом входящих сообщений;
- работать со сложной почтовой и адресной информацией;
- автоматически фильтровать сообщения;
- поддерживать дополнительные возможности сообщений, например специализированные и “интеллектуальные” формы.
Последние позволяют заменить стандартные средства отправки и приема сообщений формой, предназначенной для конкретной организации, например, в виде табеля или календаря. Кроме того, форма может включать заполненные заранее информационные поля.
“Интеллектуальные” формы похожи на специализированные, но способны связывать информацию полей формы с другими приложениями. Например, полученную таким образом табельную информацию можно переадресовать программе расчета заработной платы.
Подсистема сообщений MAPI
CMC, Simple MAPI и Extended MAPI предоставляют необходимые коммуникационным приложениям функции API. Последние работают со вторым функциональным уровнем MAPI — подсистемой сообщений (messaging subsystem), которая обрабатывает вызовы функций API и выполняет необходимые действия (рис. 11. 1). Подсистемой ее называют потому, что она фактически является составной частью операционной системы.
Рис. 11.1 Применение MAPI для создания приложений, снабженных средствами работы с почтой
Подсистема сообщений MAPI разделяет задачи, предназначенные для разных транспортных служб. Драйверы для каждого транспорта (в виде библиотеки динамической загрузки) реализуют так называемый интерфейс доступа к сервису (Service Provider Interface, SPI) между почтовой подсистемой MAPI и серверной почтовой системой.
Интерфейсы доступа к сервису
Третий функциональный уровень MAPI обеспечивает независимость программ от конкретной системы сообщений. Коммуникационные приложения, отвечающие стандарту MAPI, могут при наличии соответствующих драйверов общаться с любыми службами сообщений, также как при наличии соответствующих драйверов документ можно распечатать на разных принтерах.
Преимущества использования MAPI
Открытая архитектура MAPI обеспечивает всем приложениям-клиентам MAPI простой и надежный доступ к информации из самых разных источников, включая факсимильную связь, доски объявлений и электронную почту. Пользователи Windows вправе сами подобрать драйвер для нужной серверной службы.
Благодаря этим драйверам, клиентские приложения могут одновременно работать с несколькими системами сообщений, например Microsoft Mail, Novell MHS и IBM PROFS, не требуя настройки для конкретной системы.
Использование MAPI в Microsoft Visual Basic
Элементы управления MAPI позволяют создавать приложения Visual Basic, снабженные средствами для работы с сообщениями. Таких управляющих элементов два:
- MAPISession;
- MAPIMessages.
Элемент управления MAPISession позволяет зарегистрироваться в коммуникационной системе и создать сеанс MAPI. Он же используется для завершения сеанса MAPI.
Элемент управления MAPIMessages реализует различные функции системы сообщений в течение сеанса, созданного элементом управления MAPISession.
Пример Этот код на Visual
Basic открывает сообщение электронной почты средствами элементов управления
MAPISession и MAPIMessages:
Private Sub GetlastMessage_Click()
Dim strHeader As String
'Регистрация, открытие почтового сеанса и загрузка почты.
MAPISession1.Action = mapSignOn
MAPIMessagesI.SessionID = MAPISessionI.SessionID
MAPIMessages1.Fetch
'Последнее сообщение в почтовом ящике Inbox.
MAPIMessagesI.Msglndex = MAPIMessagesI.MsgCount - 1
strHeader = "От кого: " & MAPIMessagesI .MsgOrigDisplayName
strHeader = strHeader & " Тема: " &
MAPIMessagesI.MsgSubject
'Вывод текста сообщения в окно сообщений и
'завершение сеанса.
MsgBox MAPIMessagesI.MsgNoteText, , strHeader
MAPISessionI.Action = mapSignOff
End Sub
Примечание Более подробную
информацию о MAPI Вы найдете на Web-узле Microsoft по адресу www.microsoft.com/win32dev/mapi/.
Поддержка MAPI посредством управляющих элементов ActiveX
В этом упражнении Вы с помощью элементов управления ActiveX создадите на Visual Basic приложения, снабженные средствами для работы с почтой. Используемые в этом упражнении элементы управления ActiveX обеспечивают интерфейс с MAPI. ^ Установка Microsoft Mail Postoffice
- В Панели управления дважды щелкните значок Microsoft Mail Postoffice.
- Выберите Create a new Workgroup Postoffice и нажмите Next.
- В поле Postoffice Location наберите С:\ и нажмите Next.
- По умолчанию Вам будет предложен каталог C:\wgpo0000. Нажмите Next.
- Введите информацию об администраторе, указанную в таблице.
Поле |
Значение (все символы строчные) |
Name |
admin |
Mailbox |
admin |
Password |
password |
Остальные поля можно не заполнять. Нажмите ОК.
- Появится сообщение о предоставлении папки в совместное использование. Нажмите ОК.
- На рабочем столе Windows 95 щелкните правой кнопкой значок Inbox и выберите пункт Properties.
- Щелкните кнопку Add, выберите только службу Microsoft Mail и нажмите Next.
- В качестве каталога по умолчанию должна быть указана папка C:\wgpo0000. Нажмите Next.
- Убедитесь, что выбрана учетная запись admin, и нажмите Next.
- В поле пароля наберите слово password и нажмите Next.
- Нажмите Next, чтобы согласиться с предлагаемым по умолчанию файлом адресной книги.
- Нажмите Next, чтобы согласиться с предлагаемым по умолчанию файлом личной папки.
- Оставьте установленным флажок Do not add the Inbox to the Startup group и нажмите Next.
- Нажмите Finish.
> Как открыть папку Inbox в Windows 95
- Дважды щелкните значок Inbox на рабочем столе.
- Если система попросит ввести пароль, убедитесь, что для почтового отделения используется каталог C:\wgpo0000, а в качестве почтового ящика — admin Вве дите в поле пароля password и нажмите ОК.
- Минимизируйте окно Inbox.
> Использование элементов управления MAPI в Visual Basic
- Создайте в Visual Basic новый проект типа Standard EXE.
- Щелкните правой кнопкой мыши панель элементов управления и выберите пункт Components.
- Выберите компоненты Microsoft MAPI Controls 5.0 и Microsoft Rich Textbox Control 5.0.
- Поместите на форму Form1 элементы управления MAPIMessages и MAPI- Session.
- Добавьте на форму Form1 два текстовых поля, поле форматированного тек ста и кнопку.
- Установите для них свойства, перечисленные в таблице.
Элемент управления |
Свойство |
Значение |
Textl |
Name |
txtEmail |
Text2 |
Name |
txtSubject |
RichTextBox1 |
Name |
rtbMessage |
Command 1 |
Name |
cmdSendMail |
|
Caption |
&Send Mail |
- Ваша форма должна выглядеть, как показано на рисунке.
- В событие Click кнопки
cmdSendMail введите следующий код:
MAPISession1.SignOn
With MAPIMessages1
.SessionID = Form1.MAPISession1.SessionID
.Compose
.MsgSubject = txtSubject.Text
.MsgNoteText = rtbMessage.Text
.RecipAddress = txtEmail.Text
.AddressResolveUI = True
. ResolveName
.Send False
End With
MAPISessionI.SignOff
- В меню Run Visual Basic выберите пункт Start.
- Введите admin в качестве адресата сообщения.
- Введите тему и само
сообщение, после чего нажмите кнопку Send Mail.
Сообщение будет отправлено Вашей учетной записи в почтовом отделении Windows 95.
- Переключитесь в окно Inbox и проверьте наличие новой почты. Доставка электронного письма может занять несколько секунд.
Резюме
Microsoft Messaging API обеспечивает пользователям организации доступ к информации, поступающей от MAPI-совместимых почтовых систем. Открытая архитектура MAPI позволяет интегрировать клиентские приложения MAPI с такими службами, как факс, доски объявлений и электронная почта.
В состав MAPI входят три разновидности клиентских API. Simple MAPI и Common Messaging Calls (CMC) адресованы разработчикам приложений, которым необходим только набор базовых функций для работы с сообщениями. Extended MAPI предназначен для создания полнофункциональных коммуникационных приложений.
MAPI предоставляет программам, работающим с сообщениями, необходимые функции API. Вызовы обрабатывает второй функциональный уровень MAPI — подсистема сообщений.
Элементы управления MAPI позволяют снабжать приложения на Visual Basic средствами для работы с сообщениями. Элемент управления MAPISession обеспечивает регистрацию в коммуникационной системе и создание сеанса MAPI, а также завершение сеанса. Элемент управления MAPIMessages реализует различные функции системы сообщений в течение сеанса, созданного элементом управления MAPISession.