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