Outlook.MailItem.HTMLBody 在内联响应下更新时不会刷新



为内联响应设置MailItem.HTMLBody时,有时更新的正文永远不会显示。如果我打电话给MailItem.Save(),有时它会显示,但仅在保存的草稿预览下。有谁知道强制更新的 HTMLBody 渲染的方法?

一些额外的发现:

  • 对于只有纯文本的电子邮件(但MailItem.BodyFormatOlBodyFormat.olFormatHTML(,这总是会发生。
  • 对于包含 HTML 内容和图像的电子邮件,如果用户在回复时选择下载外部内容,则会发生这种情况
  • 对于包含HTML内容和图像的电子邮件,如果用户选择不下载外部内容,则不会发生这种情况

我尝试使用不同的路线通过资源管理器获取 MailItem,它们都会导致相同的结果。以下是我尝试过的不同方法,以防我错过了任何内容:

  1. 通过 Outlook.Application.Explorers.NewExplorer 事件处理程序 arg
  2. 通过ActiveInlineResponse财产

explorer = OutlookApp.ActiveExplorer((;

响应 = 资源管理器。主动内联响应;

  1. 通过InvokeMember("ActiveInlineResponse"...

explorer = OutlookApp.ActiveExplorer((;

响应 = 资源管理器。GetType((。InvokeMember("ActiveInlineResponse", BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.Public, null, explorer, null( 作为 MailItem;

环境:

  • 办公室版本: 16.0.10827.20118
  • 视窗 10
  • Office 2007 主互操作
  • VSTO 2010

对于那些感兴趣的人,我找到了导致这种行为的原因。它没有完全解释潜在的问题,但至少我们有一个解决方法。

在设置 HTMLBobdy 之前,我们通过Document doc = MailItem.GetInspector.WordEditor访问文档以检索所选文本。

将其更改为Document doc = ActiveExplorer.ActiveInlineResponseWordEditor消除了上述问题。

最新更新