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

Exchange server 使用exchange web服务托管API保存.msg格式文件,exchange-server,exchangewebservices,email,msg,Exchange Server,Exchangewebservices,Email,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") serv

我正在尝试使用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管理的API实现这一点,我会满足于使用一个函数来调用,以查看自上次调用或类似调用后是否存在新消息,而不必一直执行搜索。我不希望将其作为outlook插件实现,因为我们需要它与web版本以及完整客户端无缝配合。

我无法在框架内找到任何直接方法,因此我使用了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()

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