仅从电子邮件 html 正文中获取文本
Posted
技术标签:
【中文标题】仅从电子邮件 html 正文中获取文本【英文标题】:Fetch only text from email html body 【发布时间】: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 标签。还是我应该解析它?
感谢您的任何意见。
【问题讨论】:
如果没有原生解决方案,请参阅***.com/questions/19523913/… 我希望有一个 Exchange 解决方案,我以为我缺少一些参数。不过还是谢谢 【参考方案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);
【讨论】:
谢谢大家,我会接受这个,因为它不是一个示例,但可以立即使用。以上是关于仅从电子邮件 html 正文中获取文本的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python 根据磁盘使用情况在 HTML 表格电子邮件正文中添加标题和文本颜色