【问题标题】:Fetch only text from email html body仅从电子邮件 html 正文中获取文本
【发布时间】:2016-02-15 14:09:48
【问题描述】:

我在 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 格式返回正文。有什么方法可以让我只获取文本而不是 html,我不需要 html 标签。还是我应该解析它?

感谢您的任何意见。

【问题讨论】:

标签: c# exchangewebservices


【解决方案1】:

"在您的项目的 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 答案。

【讨论】:

  • 看来我们使用了相同的来源:) 你打败了我。呵呵
【解决方案2】:

这对我有用。

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);

【讨论】:

  • 谢谢大家,我会接受这个,因为它不是一个示例,但可以立即使用。
猜你喜欢
  • 1970-01-01
  • 2011-04-15
  • 1970-01-01
  • 2011-05-15
  • 2015-09-19
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多