2012-08-07 58 views
0

我試圖從Exchange電子郵件中加載文件附件(其圖像文件)。Exchange EWS MailItem顯示附件,但不讓我檢索文件附件

` 的foreach(在findResults.Items EmailMessage項) { 如果(item.HasAttachments) { 變種東西= item.Attachments [0];

   foreach (Attachment attachment in item.Attachments) 
       { 
        if (attachment is FileAttachment) 
        { 
         FileAttachment fattach = (FileAttachment)attachment;` 

出於某種原因,即使項目有附件(我可以通過登錄到Web界面證實了這一點),它不允許我檢索FileAttachment的。

它顯示爲空。爲什麼一個項目在集合中有一個附件,但沒有可檢索的?

回答

0

我有一個類似的問題,並非所有的屬性都設置好了,所以您需要從Exchange服務本身調用LoadPropertiesForItems方法來加載額外的數據,如附件。
例如,如果要加載的項目x的所有附件和交換服務實例是S則:

List<Item> xlist = new List<Item>(); 
      xlist.Add(x); 
      s.LoadPropertiesForItems(xlist,PropertySet.FirstClassProperties); 
0

當綁定到該項目,你需要指定附件屬性。以下代碼示例應該有所幫助:

PropertySet propertySet = new PropertySet(ItemSchema.Subject, ItemSchema.Attachments);  
Item item = Item.Bind(service, itemId, propertySet); 
0

您錯過了加載附件。請參閱下面的想法示例

EmailMessage msgInfo = null; 
foreach (Item msgItemInfo in msgItemWithNotification) 
{ 
    msgInfo = EmailMessage.Bind(exchange, msgItemInfo.Id); 
    foreach (Attachment attachment in msgInfo.Attachments) 
     { 
      if(attachment is FileAttachment) 
       { 
        FileAttachment fattach = attachment as MSEWS.FileAttachment; 
        fattach.Load(); 
        Stream excelFileStream = new System.IO.MemoryStream(fattach.Content); 
       } 
     } 
} 
+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/ review/low-quality-posts/16889398) – 2017-08-01 15:21:15