【问题标题】:Mail preview wrong after setting HTMLBody设置 HTMLBody 后邮件预览错误
【发布时间】:2016-11-02 04:33:15
【问题描述】:

我正在为 Outlook 开发一个 vsto 插件。

我正在尝试设置邮件的HTMLBody。但是,如果我打开的邮件存在于Drafts 文件夹中,我可以设置邮件的HTMLBody 并且显示的预览很好。但如果邮件存在于Deleted Items 文件夹中,则邮件的HTMLBody 属性已设置,但预览不会显示更新的内容。有什么办法可以刷新预览吗?还是我错过了什么?

更新 1:

我有一个单独的表单区域,用于邮件项目。 我有一份我正在处理的草稿。可以说,它的初始 HTML 内容是 A。可以说,在导航到表单区域后,我将邮件的 HTMLBody 属性设置为 B。但我还没有保存邮件。因此,当我导航回邮件正文时,我暂时可以看到更改(邮件正文显示 B)。当然,如果我不保存,更改将会丢失。

但是,现在我删除了草稿,以便将其移至已删除邮件文件夹。 HTML 内容仍然是 A 因为它没有保存。现在当我打开这个草稿(从已删除的项目文件夹)并导航到表单时,我将 HTMLBody 属性设置为 B强>。但是当我导航回邮件正文时,它并没有显示出这种变化。邮件正文仍然显示 A。(检查器仍然打开,它没有关闭)但是当我检查我的调试器时,HTMLBody 属性设置为 B。为什么?

【问题讨论】:

  • 你保存邮件吗?
  • 没有。我不保存消息。但是如果邮件项目在草稿中,同样的事情会起作用!
  • @Dmitry Streblechenko 如果我附加调试器,我可以看到 HTMLBody 属性已设置。但它没有显示在邮件正文中!我做错了吗?

标签: outlook vsto outlook-addin mailitem


【解决方案1】:

您需要保存消息 (MailItem.Save),否则更改将不会持续存在。如果将邮件移动到“已删除邮件”文件夹,则它是物理上不同的邮件,并且不会保留任何未保存的更改。

【讨论】:

  • 我已经用更多细节更新了这个问题。你能查一下吗?
  • 一种或另一种方式,您需要保存消息才能看到更改。如果你不这样做,所有的赌注都会被取消。
  • 是的,如果我希望在下次打开邮件时看到这些更改,我必须保存邮件。但我只是让我的检查员在编辑模式下打开。我设置了 HTMLBody 属性。那不应该在那一刻在检查员中可见吗?如果该项目来自草稿文件夹,则同样适用。为什么?我还缺少什么吗?
  • 在项目仍在显示时使用 Inspector.WordEditor 进行更改可能是一个更好的主意。
  • 我能够调试我的问题。问题是,当我的邮件从草稿移动到已删除的项目时,加载项仍然指的是草稿中的旧 mailitem 对象。因此,它从未随我的更改而更新。我学到的一件重要的事情是,在使用 formregions 时,始终使用 this.OutlookItem 引用 currentItem
猜你喜欢
  • 2016-07-10
  • 1970-01-01
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-01
  • 1970-01-01
相关资源
最近更新 更多