Знакомство с MAPI

В этой статье описываются основные моменты работы с элементом управления Microsoft MAPI Controls.

Итак, MAPI (Mail Application Programming Interface) - это программы, работающие с почтовыми системами. С помощью MAPI вы можете получать, посылать письма, прикреплять к письмам файлы. Microsoft MAPI Controls является удобной оболочкой для работы с почтой

Для работы с примерами, приведенными в статье вам понадобится установленный Microsoft MAPI Controls, который содержится в файле MSMAPI32.OCX.

Теперь расположите на форме MAPISession и MAPIMessage. С их помощью мы создадим простую почтовую программу. Для использования этих элементов необходимо иметь установленный почтовый сервер, например Microsoft Outlook Express

Теперь, для приема или посылки писем вам необходимо получить доступ к почтовому серверу, используя ваш индентификатор и пароль. Возможны два способа: Либо MAPI controls сами делают всю работу за вас, либо вы вручную устанавливаете необходимые данные:

'Первый способ. Данные по умолчанию
Private Sub Form_Load()

    MAPISession1.SignOn
    
    MAPISession1.SignOff
End Sub

' Или вручную устанавливаем данные

Private Sub Form_Load()
    MAPISession1.UserName = "MyName"
    MAPISession1.Password = "MyPassword"
    MAPISession1.SignOn
    
    MAPISession1.SignOff
End Sub

Итак, мы научились устанавливать соединение с почтовым сервером. Теперь попробуем получить доступ к различным сервисам, доступным через MAPIMessage

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

Давайте узнаем, сколько писем содержится в ящике Входящие из Outlook Express

Private Sub Form_Load()
MAPISession1.DownLoadMail = True
MAPISession1.SignOn
    
MAPIMessages1.SessionID = MAPISession1.SessionID
MAPIMessages1.Fetch
MsgBox "У вас " & MAPIMessages1.MsgCount & _ 
           " сообщений!"
        
    MAPISession1.SignOff
End Sub

А теперь попробуем получить другую интересную информацию. Добавьте Listbox на форму. Пишем следующий код:

Private Sub Form_Load()
Dim i As Long
    
MAPISession1.DownLoadMail = True
MAPISession1.SignOn
    
MAPIMessages1.SessionID = MAPISession1.SessionID
MAPIMessages1.Fetch
    
If MAPIMessages1.MsgCount > 0 Then
   For i = 0 To MAPIMessages1.MsgCount - 1
   MAPIMessages1.MsgIndex = i
   List1.AddItem "От:" & MAPIMessages1.MsgOrigDisplayName & _
            " Тема:" & MAPIMessages1.MsgSubject
   Next
End If
MAPISession1.SignOff
End Sub

С помощью данного кода мы получим список всех заголовков писем из ящика Входящие

Вы можете использовать MsgOrigAddress вместо MsgOrigDisplayName. В этом случае вы получите электронные адреса отправителей (вместо псевдонимов)

Вы можете получить доступ и к другой информации, заложенной в письмах. Например, попробуйте использовать MsgDateReceived (дата получения письма)

Создание письма

Для создания письма нужно задать несколько необходимых параметров

Private Sub Form_Load()
MAPISession1.SignOn
    
MAPIMessages1.SessionID = MAPISession1.SessionID
    
MAPIMessages1.Compose
MAPIMessages1.RecipAddress = "gates@microsoft.com"
MAPIMessages1.MsgSubject = "I Love you"
MAPIMessages1.MsgNoteText = "Куплю окна. Оптом."
        
MAPIMessages1.Send False
    
MAPISession1.SignOff
End Sub

Используя False в методе Send, вы запрещаете показ окна Создание нового письма

На этом мы и закончим краткое описание элемента управления MAPI Controls. Успешного вам программирования!

Реклама


Для писем:
rusproject@mail.ru
© 2002 А.Климов