使用EWS API保存电子邮件附件 [英] Save Email Attachments Using EWS API
本文介绍了使用EWS API保存电子邮件附件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有人可以发布一个简单示例,说明如何使用EWS API将电子邮件附件从电子邮件保存到本地或网络驱动器路径吗? 我使用的是Exchange 2010. 最好是在VB.Net中,但我也可以处理C#。 任何帮助将不胜感激!
解决方案
我想我能够回答我自己的问题,但似乎应该有另一个,也许更容易的方式要做到这一点:
Dim iv As New ItemView(1000)
iv.Traversal = ItemTraversal.Shallow
Dim items As FindItemsResults(Of Item )= tfTargetFolder.FindItems(iv)
Dim i As Integer = 0
For Each it As Item in items.Items
If TypeOf it是EmailMessage那么
Dim mMail作为EmailMessage = DirectCast(它,EmailMessage)
mMail.Load(New PropertySet(BasePropertySet.FirstClassProperties))
对于每个附件作为附件在mMail.Attachments
Dim fa As FileAttachment = DirectCast(attachment,FileAttachment)
如果fa.Name =" Test Excel File.xls"然后
使用ms作为新MemoryStream()
fa.Load(ms)
Dim data As Byte()= ms.ToArray()
Dim fs As New FileStream(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ,FileAccess.Write)
fs.Write(data,0,data.Length)
fs.Close()
结束使用
结束如果
下一个
mMail.Move(fFolder.Id)
结束如果
Can someone please post a simple example of how to save an email attachment from an email to a local or networked drive path using the EWS API? I am using Exchange 2010. Preferably in VB.Net, but I can handle C# as well. Any help would be greatly appreciated!
解决方案
I think I was able to answer my own question, but it seems like there should be another, maybe easier way to do this:
Dim iv As New ItemView(1000) iv.Traversal = ItemTraversal.Shallow Dim items As FindItemsResults(Of Item) = tfTargetFolder.FindItems(iv) Dim i As Integer = 0 For Each it As Item In items.Items If TypeOf it Is EmailMessage Then Dim mMail As EmailMessage = DirectCast(it, EmailMessage) mMail.Load(New PropertySet(BasePropertySet.FirstClassProperties)) For Each attachment As Attachment In mMail.Attachments Dim fa As FileAttachment = DirectCast(attachment, FileAttachment) If fa.Name = "Test Excel File.xls" Then Using ms As New MemoryStream() fa.Load(ms) Dim data As Byte() = ms.ToArray() Dim fs As New FileStream("\\server\drive
\Test\Test Excel File.xls", FileMode.Create, FileAccess.Write) fs.Write(data, 0, data.Length) fs.Close() End Using End If Next mMail.Move(fFolder.Id) End If
这篇关于使用EWS API保存电子邮件附件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文