Модификация прикладной системы

 

 

Работа с электронной почтой

 

Получение писем по протоколу POP3, сохранение HTML-тел и вложений

 

// Определить константы.

adTypeBinary = 1

adSaveCreateOverWrite = 2

// Создать почтовую фабрику.

MailFactory = CreateObject("SBUM.MailFactory")

// Запросить у фабрики сервер типа "POP3".

Server = MailFactory.GetServer("POP3")

// Создать и означить параметры входа на сервер.

Credentials = MailFactory.CreateParamList()

Credentials.Items("User") ="user1"

Credentials.Items("Password") = "user1password"

Credentials.Items("Server") = "pop.mymail.ru"

// Выполнить вход на сервер.

Server.Logon(Credentials)

// Создать параметры фильтрации сообщений.

FilterParams = MailFactory.CreateParamList()

// Найти все входящие.

IncomingMessages = Server.SearchInbox(FilterParams)

// Выгружать все сообщения во временную папку.

TargetFolder ="D:\Temp\msg\"

// Обработать все сообщения.

i = 0

while i < IncomingMessages.Count

  Msg = IncomingMessages.Values(i)

  k = 0

  // Обработать все вложения.

  Attachments = ""

  while k < Msg.Attachments.Count

    Attachments = Attachments & Msg.Attachments.Names(k) & "; "

    // Сохранить вложение при помощи потока.

    StreamOut = CreateObject("ADODB.Stream")

    StreamOut.Type = adTypeBinary

    StreamOut.Open()

    StreamOut.Write(Msg.Attachments.Values(k))

    StreamOut.SaveToFile(TargetFolder & "msg" & i & "_" &
      Msg.Attachments.Names(k); adSaveCreateOverWrite)

    k = k + 1

  endwhile

  // Сохранить HTML-тело сообщения при помощи потока.

  StreamOut = CreateObject("ADODB.Stream")

  StreamOut.Type = adTypeBinary

  StreamOut.Open()

  StreamOut.Write(Msg.RawBody)

  StreamOut.SaveToFile(TargetFolder & "msg" & i & "(" & Msg.RawBodyEncoding &
    ").html"; adSaveCreateOverWrite)

  i = i+ 1  

endwhile

// Выполнить выход с сервера.

Server.Logoff()

 

 

 

См. также:

·         Получение заголовков непрочитанных сообщений Exchange;

·         Отправка письма по протоколу SimpleMAPI.