从Outlook邮件主体获取STANDARD Html

时间:2015-11-25 05:44:36

标签: c# winforms outlook-addin

我正在使用Outlook AddIn,我必须获取Outlook邮件主机并将其存储在一个控件中,该控件可以根据我的要求进行操作。 代码是这样的:

Outlook.Application oApp = new Outlook.Application();
Outlook.Explorer oExplorer = oApp.ActiveExplorer();
Outlook.Selection oSelection = oExplorer.Selection;
foreach (object item in oSelection)
{
htmlEditor1.Html = mailItem.HTMLBody;
}

我使用

检查了html体格式
oldMailItem.BodyFormat.ToString();

它提供的olFormatHTML与标准HTML不同。

如何从Outlook获取标准HTML?

1 个答案:

答案 0 :(得分:1)

Outlook生成的HTML是有效的XHTML标记,将在浏览器中显示。它包含一堆额外的Microsoft特定标记,但浏览器会忽略这些标记,并且消息将(大部分)优雅地降级。

如果你真的想要删除这个额外的标记并且只留下标准的HTML,你可以使用诸如Html Agility Pack之类的解析器来去除任何具有命名空间前缀的标记(例如<o:p> )。根据我的看法,Outlook使用o:w:v:m:分别表示邮件,文本,形状和数学标记。

正如我所说,可能没有必要删除这些标记,因为它们不会阻止消息显示在WebBrowser控件或类似内容中。