从 Outlook 电子邮件正文获取标准 Html

Getting STANDARD Html from Outlook mailbody

我正在开发 Outlook 插件,我必须在其中获取 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;
}

我使用

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

它给出的 olFormatHTML 不同于标准 HTML。

如何从 Outlook 中获取标准 HTML?

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

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

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