2015-11-13 17 views
0

我在c#中使用Exchange服務來接收電子郵件。從電子郵件HTML主體獲取僅文本

我用下面的代碼:

var service = new ExchangeService 
    { 
     Credentials = new WebCredentials("somename", "somepass"), 
     Url = new Uri("someurl") 
    }; 
FindItemsResults <Item> findResults = service.FindItems(WellKnownFolderName.Inbox,new ItemView(1)); 
var item = findResults.Items[0]; 
item.Load(); 
return item.Body.Text; 

在HTML中返回身體。有沒有什麼辦法可以讓文本而不是HTML,我不需要HTML標籤。或者我應該解析它?

感謝您的任何意見。

+0

如果沒有原生解決方案,請參閱http://stackoverflow.com/questions/19523913/remove-html-tags-from-string-including-nbsp-in-c-sharp –

+0

我一直希望有一個Exchange解決方案,我以爲我錯過了一些參數。但無論如何謝謝 – tinySandy

回答

4

這對我有用。

var service = new ExchangeService 
{ 
    Credentials = new WebCredentials("somename", "somepass"), 
    Url = new Uri("someurl") 
}; 

var itempropertyset = new PropertySet(BasePropertySet.FirstClassProperties) 
{ 
    RequestedBodyType = BodyType.Text 
}; 

var itemview = new ItemView(1) {PropertySet = itempropertyset}; 
var findResults = service.FindItems(WellKnownFolderName.Inbox, itemview); 
var item = findResults.FirstOrDefault(); 
item.Load(itempropertyset); 
Console.WriteLine(item.Body); 
+0

感謝球員,我會接受這一個,因爲它不是一個例子,但立即工作。 – tinySandy

4

「在你的項目的屬性集,你需要設置RequestedBodyType到BodyType.Text下面是一個例子:」

PropertySet itempropertyset = new PropertySet(BasePropertySet.FirstClassProperties); 
itempropertyset.RequestedBodyType = BodyType.Text; 
ItemView itemview = new ItemView(1000); 
itemview.PropertySet = itempropertyset; 

FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, "subject:TODO", itemview); 
Item item = findResults.FirstOrDefault(); 
item.Load(itempropertyset); 
Console.WriteLine(item.Body); 

Citated從this答案。

+0

看來我們使用了相同的來源:)你打敗了我。呵呵 –