如何强制Outlook预览窗格刷新未保存的MailItem.HTMLBody?
解决Outlook未保存MailItem时预览窗格不刷新的问题
临时切换选中项手动触发刷新
最快的操作方式就是先选中邮件列表里的另一封邮件,再切回你修改过的这封。Outlook会重新加载当前选中邮件的内存数据,预览窗格就能显示更新后的主题和HTMLBody内容了。用代码强制重新选中邮件(适用于VBA/插件开发)
如果你是通过代码修改MailItem,可以调用Outlook对象模型的方法强制刷新选中状态,触发预览更新:Dim objExplorer As Outlook.Explorer Dim objMail As Outlook.MailItem Set objExplorer = Application.ActiveExplorer Set objMail = objExplorer.Selection(1) ' 先取消选中当前邮件 objExplorer.ClearSelection ' 重新选中目标邮件 objExplorer.AddToSelection objMail执行这段代码后,预览窗格会重新读取内存中修改后的MailItem数据,同步显示更新内容。
触发属性变更通知刷新
可以通过修改一个无关属性再还原的方式,让Outlook感知到邮件变化,从而刷新预览:Dim tempCategory As String tempCategory = objMail.Categories ' 修改临时属性触发变更 objMail.Categories = "Temp_Refresh" ' 还原原属性 objMail.Categories = tempCategory这个小操作会触发Outlook内部的属性变更机制,进而更新预览窗格。
注意:以上方法都是基于内存中的临时修改,如果关闭Outlook或MailItem对象被释放,未保存的修改会直接丢失,若需要长期保留修改,最终还是要执行保存操作。
内容的提问来源于stack exchange,提问作者Willy
相关产品推荐
相关产品推荐

