为内联响应设置MailItem.HTMLBody
时,有时更新的正文永远不会显示。如果我打电话给MailItem.Save()
,有时它会显示,但仅在保存的草稿预览下。有谁知道强制更新的 HTMLBody 渲染的方法?
一些额外的发现:
- 对于只有纯文本的电子邮件(但
MailItem.BodyFormat
OlBodyFormat.olFormatHTML
(,这总是会发生。 - 对于包含 HTML 内容和图像的电子邮件,如果用户在回复时选择下载外部内容,则会发生这种情况
- 对于包含HTML内容和图像的电子邮件,如果用户选择不下载外部内容,则不会发生这种情况
我尝试使用不同的路线通过资源管理器获取 MailItem,它们都会导致相同的结果。以下是我尝试过的不同方法,以防我错过了任何内容:
- 通过 Outlook.Application.Explorers.NewExplorer 事件处理程序 arg
- 通过
ActiveInlineResponse
财产
explorer = OutlookApp.ActiveExplorer((;
响应 = 资源管理器。主动内联响应;
- 通过
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
消除了上述问题。