В этой статье описываются основные моменты работы с элементом управления 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. Успешного вам программирования!