使用Exchange Web服务托管API保存.msg格式文件

时间:2011-01-20 00:58:34

标签: exchange-server exchangewebservices email-integration msg

我正在尝试使用Exchange Web服务托管API 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找到任何方法,我会选择一个函数来调用,看看自上次调用以来是否存在新消息或类似情况,而不是一直进行搜索。我宁愿不将它实现为outlook插件,因为我们需要它与Web版本以及完整的客户端无缝协作。

1 个答案:

答案 0 :(得分:0)

我在框架中找不到任何直接的方法,所以我使用了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()