0

當附件是電子郵件時,我可以簡單地獲取MIME內容並保存它。但是當附件是聯繫人時,我無法獲得MimeContent。下面是代碼如何使用EWS API下載電子郵件附件中的聯繫人?

itemAttachment.Load(new PropertySet(ItemSchema.MimeContent)); MimeContent mc = itemAttachment.Item.MimeContent; //Convert it to bytes byte[] contentBytes = mc.Content;

當附件是接觸我正在異常下面

Microsoft.Exchange.WebServices.Data.ServiceResponseException發生 的HResult = -2146233088消息= MIME不支持轉換爲 此項目類型。 Source = Microsoft.Exchange.WebServices StackTrace: at Microsoft.Exchange.WebServices.Data.ServiceResponse.InternalThrowIfNecessary() at Microsoft.Exchange.WebServices.Data.ServiceResponse.ThrowIfNecessary() at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest 附件,可空1 bodyType, IEnumerable 1 additionalProperties, ServiceErrorHandling ErrorHandling中) 在Microsoft.Exchange.WebServices.Data.ExchangeService.GetAttachment(附件 附件,可空1 bodyType, IEnumerable 1 additionalProperties) 在Microsoft.Exchange.WebServices.Data.Attachment.InternalLoad (可空值1 bodyType, IEnumerable 1個附加屬性) 在Microsoft.Exchange.WebServices.Data.ItemAttachment.Load(IEnumerable`1 additionalProperties) 在Presensoft.JournalEmailVerification.EmailVerification.DownloadFailedAttachments(EmailMessage 味精,JournalEmail journalEmail)在C:\用戶\薩米爾\ Presensoft \電子郵件 歸檔\ Presensoft.JournalEmailVerification \ EmailVerification.cs:行 605的InnerException:

什麼是下載並保存聯繫人附件的正確方法?

回答

1

保存在Exchange

聯繫人上的聯繫人使用MimeContent不會起作用,因爲服務器不支持的轉換。您可以獲取聯繫人的MimeContent,但您無法將MimeContent另存爲聯繫人。

不幸的是,沒有簡單的方法來保存附加的聯繫人。我建議的是手動克隆聯繫人。使用EWS託管API,您可以作爲聯繫人訪問ItemAttachment。然後,您需要在服務器上創建一個新聯繫人,使用TryGetProperty()將所有聯繫人的所有屬性複製到新聯繫人,然後保存新聯繫人。

我知道在訪問ItemAttachment時,只需在聯繫人對象上使用保存方法是有意義的。問題是對象IsAttachment上存在只讀屬性,該屬性設置爲true,並且不允許保存該對象。如果你嘗試,你會得到一個例外,該方法不可用於附件。

保存爲.vcf文件

如果你試圖聯繫人保存到本地文件系統有隻是需要幾行代碼。

itemAttachment.Load(ItemSchema.MimeContent); 
File.WriteAllBytes("Contact.vcf", itemAttachment.Item.MimeContent.Content); 

我希望這個信息有幫助。如果這確實解決了您的問題,請將帖子標記爲已回答。

感謝,

---鮑勃---

+0

我的要求是在文件系統中的附件保存爲獨立的文件。任何方式來實現這一目標? – Sameer

+0

我能夠得到MimeContent並用我的測試代碼保存文件。我更新了答案,在確定附件是ItemAttachment並且附件的ItemClass是IPM.Contact後添加了我使用的兩行代碼。 –

+0

Bob,itemAttachment.Load(new PropertySet(ItemSchema.MimeContent))和itemAttachment.Load(ItemSchema.MimeContent)有什麼區別? – Sameer

相關問題