【问题标题】:Trying to save Outlook MailItem as an HTML formatted MSG but it opens as plain text尝试将 Outlook MailItem 保存为 HTML 格式的 MSG,但它以纯文本形式打开
【发布时间】:2019-11-13 09:41:47
【问题描述】:

我有一个引用 Microsoft Office 16.0 对象库的 c# 类文件。

它创建一个 Outlook MailItem,格式化为 HTML 并将 MSG 文件保存在本地。问题是当我打开保存的文件时,Outlook 将其视为纯文本。这是我正在查看的示例:

oMsg = oApp.CreateItem(Outlook.OlItemType.olMailItem);
oMsg.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
oMsg.HTMLBody = @"<b>Test</b>";
...
oMsg.SaveAs(Path.Combine(path, filename), Outlook.OlSaveAsType.olMSG);

当我打开保存的文件时,测试不是粗体,并且显示的消息格式是纯文本。我有什么遗漏吗?

我还应该补充一点,当我将此邮件发送到我的 Outlook 收件箱(而不是保存)时,它可以正常工作。我不确定味精文件有什么问题。

【问题讨论】:

  • 在调用 SaveAs 之前是否调用 oMsg.Save?
  • 我刚试过,同样的行为发生了。文本未格式化,并在“格式化文本”选项卡下选择纯文本。我看到 Save() 在我的草稿文件夹中放置了正确的 HTML 副本。

标签: c# outlook format interop


【解决方案1】:

我对以下测试脚本没有任何问题(我使用 Outlook Spy 运行它):

set oMsg = Application.CreateItem(olMailItem)
oMsg.BodyFormat = olFormatHTML
oMsg.HTMLBody = "<b>Test</b>"
oMsg.Save
oMsg.SaveAs "c:\temp\testhtml.msg", olMSG

【讨论】:

  • 谢谢你的帮助,我至少知道代码没问题。我这边出了点问题。
  • 它运行但仍然给我问题中描述的行为。本地保存的结果 MSG 文件是纯文本,但我的草稿文件夹中的文件是 HTML。我不知道它为什么会这样,但我可以在草稿文件夹中找到解决方法。谢谢!
  • 如果您安装了 OutlookSpy,请尝试打开 MSG 文件(单击 OpenIMsgOnIStg)并检查 PR_RTF_COMPRESSED 是否包含 RTF 包装的 HTML。
猜你喜欢
  • 1970-01-01
  • 2019-11-22
  • 1970-01-01
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多