2014-03-26 78 views
0

有沒有一種方法可以從ItemAttachment刪除項目中的HTML標籤? 我只能從Item中獲取文本。但不是從ItemAttachment的項目。 這裏是我的代碼:從ItemAttachment(EWS託管API)獲取項目的文本

foreach (ItemAttachment itemAttach in item.Attachments.OfType<ItemAttachment>()) 
{ 
    Console.WriteLine(itemAttach.Name); 

    itemAttach.Load(); 

    PropertySet propSet = new PropertySet(); 
    propSet.RequestedBodyType = BodyType.Text; 
    propSet.BasePropertySet = BasePropertySet.FirstClassProperties; 

    itemAttach.Item.Load(propSet); 

    Console.WriteLine(itemAttach.Item.Body.Text); 
} 

它會得到這個異常

This operation isn't supported on attachments

我試圖與項目ID綁定到交換服務。

這也給我一些例外! 請給我一些建議,說明我該怎麼做。

回答

0

金,

你所得到的例外就是要創建的屬性設置做。我沒有看到你的代碼獲取項目,所以我不能確定確切的原因。我能夠得到下面的代碼在我的機器上工作。您應該可以根據自己的需要進行修改。

// Return the first ten items. 
ItemView view = new ItemView(10); 

// Set the query string to only find emails with attachments. 
string querystring = "HasAttachments:true Kind:email"; 

// Find the items in the Inbox. 
FindItemsResults<Item> results = service.FindItems(WellKnownFolderName.Inbox, querystring, view); 

// Loop through the results. 
foreach (EmailMessage email in results) 
{ 
    // Load the email message with the attachments 
    email.Load(new PropertySet(EmailMessageSchema.Attachments)); 

    // Loop through the attachments. 
    foreach (Attachment attachment in email.Attachments) 
    { 
     // Only process item attachments.    
     if (attachment is ItemAttachment) 
     { 
      ItemAttachment itemAttachment = attachment as ItemAttachment; 

      // Load the attachment. 
      itemAttachment.Load(new PropertySet(EmailMessageSchema.TextBody)); 

      // Output the body. 
      Console.WriteLine(itemAttachment.Item.TextBody); 
     } 
} 

對於每個具有項目附件的電子郵件,我都能夠看到刪除HTML標籤的項目主體。

我希望這會有所幫助。如果這解決了您的問題,請將此帖標記爲已回答。

感謝,

---鮑勃---

+0

感謝您的代碼。但我不認爲我的程序可以使用_TextBody_屬性,因爲我的Exchange Server是2010.如果我沒有錯,_TextBody_用於Exchange Server 2013.我將代碼更改爲'PropertySet propSet = new PropertySet();''propSet .RequestedBodyType = BodyType.Text;' 'itemAttach.Load(propSet);'它也不起作用。但是這一次,沒有發現異常!我不知道爲什麼它不起作用。 –

+0

我在示例中更改了幾行代碼,與您所做的相似,並且我能夠輸出消息的正文。問題仍然是HTML標籤沒有被刪除,所以你將不得不解析文本。這裏是另一篇文章,展示瞭如何去除HTML標籤:http://stackoverflow.com/questions/4878452/remove-html-tags-in-string –

+0

感謝鮑勃!我會考慮解析。現在,基於我的觀察,附件可能是_ItemAttachment_的可能性很小。 –

相關問題