2012-02-29 117 views
0

我注意到,當有人複製粘貼電子郵件然後發送它時,圖像的「src」值發生變化。例如,如果原始電子郵件的圖像是附件,並且其contentId是:cid:companlyLogo。然後有人將此電子郵件複製粘貼到新草稿中,並將此src值更改爲:src =「cid:[email protected]」。從電子郵件中獲取圖片

我不知道如何獲取此圖像並將其保存在c#中的圖像對象。目前我正在使用EWS API進行此操作。問題是,自從它複製粘貼後,它不再具有作爲原始電子郵件的附件。有沒有人有任何想法如何檢索這種類型的電子郵件的圖像??????我現在正在爲此操作2天:(

回答

2

嵌入式圖像被Exchange視爲電子郵件附件,這意味着您可以從Item.Attachments屬性中檢索圖像。以下示例顯示如何使用EWS Managed API。請注意,EWS不會加載附件,除非你明確告訴它通過調用LoadPropertiesForItems

你可以告訴附件通過檢查Attachment.IsInline屬性嵌入。EWS讓您加載附件並保存到磁盤調用FileAttachment.Load方法。

ExchangeService service = GetService(); 
var view = new ItemView(1); 
var searchFilter = new SearchFilter.IsEqualTo(EmailMessageSchema.Subject, "Some subject text"); 
var items = service.FindItems(WellKnownFolderName.Inbox, searchFilter, view); 
service.LoadPropertiesForItems(items, new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.Attachments)); 

var item = items.ElementAt(0) as EmailMessage; 

for (int i = 0; i < item.Attachments.Count; i++) 
{ 
    var att = item.Attachments[i] as FileAttachment; 
    if (att.IsInline && att.ContentType.Contains("image")) 
    { 
     att.Load(String.Format(@"c:\temp\attachedimage_{0}.jpg", i)); 
    } 
}