仅从电子邮件html正文中获取文本

时间:2015-11-13 21:34:41

标签: c# exchangewebservices

我在c#中使用Exchange服务接收电子邮件。

我使用以下代码:

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返回body。有什么方法我只能得到文本而不是html,我不需要html标签。或者我应该解析它?

感谢您的任何意见。

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:4)

“在你的项目的PropertySet中,你需要将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);

来自this回复。