Архитектура Microsoft Windows для разработчиков

         

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

  1. В Панели управления дважды щелкните значок Microsoft Mail Postoffice.
  2. Выберите Create a new Workgroup Postoffice и нажмите Next.
  3. В поле Postoffice Location наберите С:\ и нажмите Next.
  4. По умолчанию Вам будет предложен каталог C:\wgpo0000. Нажмите Next.
  5. Введите информацию об администраторе, указанную в таблице.

Поле

Значение (все символы строчные)

Name

admin

Mailbox

admin

Password

password

Остальные поля можно не заполнять. Нажмите ОК.

  1. Появится сообщение о предоставлении папки в совместное использование. Нажмите ОК.
  2. На рабочем столе Windows 95 щелкните правой кнопкой значок Inbox и выберите пункт Properties.
  3. Щелкните кнопку Add, выберите только службу Microsoft Mail и нажмите Next.
  4. В качестве каталога по умолчанию должна быть указана папка C:\wgpo0000. Нажмите Next.
  5. Убедитесь, что выбрана учетная запись admin, и нажмите Next.
  6. В поле пароля наберите слово password и нажмите Next.
  7. Нажмите Next, чтобы согласиться с предлагаемым по умолчанию файлом адресной книги.
  8. Нажмите Next, чтобы согласиться с предлагаемым по умолчанию файлом личной папки.
  9. Оставьте установленным флажок Do not add the Inbox to the Startup group и нажмите Next.
  10. Нажмите Finish.

> Как открыть папку Inbox в Windows 95

  1. Дважды щелкните значок Inbox на рабочем столе.
  2. Если система попросит ввести пароль, убедитесь, что для почтового отделения используется каталог C:\wgpo0000, а в качестве почтового ящика — admin Вве дите в поле пароля password и нажмите ОК.
  3. Минимизируйте окно Inbox.

> Использование элементов управления MAPI в Visual Basic

  1. Создайте в Visual Basic новый проект типа Standard EXE.
  2. Щелкните правой кнопкой мыши панель элементов управления и выберите пункт Components.
  3. Выберите компоненты Microsoft MAPI Controls 5.0 и Microsoft Rich Textbox Control 5.0.
  4. Поместите на форму Form1 элементы управления MAPIMessages и MAPI- Session.
  5. Добавьте на форму Form1 два текстовых поля, поле форматированного тек ста и кнопку.
  6. Установите для них свойства, перечисленные в таблице.

Элемент управления

Свойство

Значение

Textl

Name

txtEmail

Text2

Name

txtSubject

RichTextBox1

Name

rtbMessage

Command 1

Name

cmdSendMail

Caption

&Send Mail

  1. Ваша форма должна выглядеть, как показано на рисунке.

  2. В событие 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

  3. В меню Run Visual Basic выберите пункт Start.
  4. Введите admin в качестве адресата сообщения.
  5. Введите тему и само сообщение, после чего нажмите кнопку Send Mail.

    Сообщение будет отправлено Вашей учетной записи в почтовом отделении Windows 95.

  6. Переключитесь в окно 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.

 



Содержание раздела