从 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
控件或类似控件中。
我正在开发 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
控件或类似控件中。