сохранить файл формата .msg с управляемым API-интерфейсом обмена веб-сервисами - PullRequest
2 голосов
/ 20 января 2011

Я пытаюсь использовать управляемый API-интерфейс Exchange Web Services 1.1 для подключения к Exchange, а затем узнать, отправлено или получено электронное письмо, и сохранить копию MSG-файла в папке на диске.

Пока у меня есть следующий код

Dim service As New Microsoft.Exchange.WebServices.Data.ExchangeService(ExchangeVersion.Exchange2007_SP1)

service.AutodiscoverUrl("name@example.com")
service.UseDefaultCredentials = True
Dim ver = service.RequestedServerVersion

Dim inbox As Folder = Folder.Bind(service, WellKnownFolderName.Inbox)
Console.Out.WriteLine(inbox.UnreadCount.ToString())

Dim sentItems As Folder = Folder.Bind(service, WellKnownFolderName.SentItems)
Console.Out.WriteLine(sentItems.TotalCount.ToString())

Я хочу запустить событие, которое сохраняет электронную почту (в формате .msg) в файловой системе. Но я не могу найти какой-либо способ сделать это с помощью EWS Managed API, я бы согласился на функцию для вызова, чтобы увидеть, существуют ли новые сообщения с момента последнего вызова или аналогичные, без предварительного поиска все время. Я бы предпочел не реализовывать это как внешний вид плагина, потому что он нам нужен для бесперебойной работы как с веб-версией, так и с полноценным клиентом.

1 Ответ

0 голосов
/ 20 января 2011

Я не смог найти какой-либо прямой способ сделать это в рамках фреймворка, поэтому я использовал Redemption и следующий код для его решения:

Dim redSess As Redemption.RDOSession = CreateObject("Redemption.RDOSession")
Dim savedMsg = redSess.GetMessageFromMsgFile("c:\test_ews_m_API2.msg", True)
savedMsg.Import("c:\test_ews_m_API.eml", 1024)
savedMsg.Save()
...