C#中的Outlook插件:Forward和Open事件之间会发生什么?

Paw*_*zul 5 c# outlook vsto outlook-addin

  1. 在Outlook插件中,我有两个已注册的事件处理程序,用于MailItem.ForwardMailItem.Open
  2. 当我收到Forward时,我得到一个对象参数,该参数引用MailItem为新消息创建的新对象.
  3. 当我查看object.HTMLBody(或Body)时,它引用与原始邮件项目相同的对象(转发前).此对象包含原始邮件的未修改值.
  4. 当我收到Open事件(关于与之前的Forward事件相同的对象)时,事件引用与forward相同的对象,但它已经包含一个新的HTMLBody(和Body) - 它包括添加到原始消息的前向标题等.

问题:

如果我尝试在步骤3)中设置新的HTMLBody对象(在转发事件处理程序中),它没有任何效果.

从事件处理程序返回后我在4)中得到的(在Open事件处理程序中)是一个转换后的原始消息,在我替换之前HTMLBody.

因此,在Forward和Open事件之间发生了一些事情,它取代HTMLBody了新对象的内容,但是基于其旧值(或原始消息的值).

那是怎么回事?

如何替换HTMLBody转发的消息,而不是影响原始消息的主体,但是在根据转发过程进行转换之前?