【问题标题】:Outlook addin: change inline response textOutlook 插件:更改内联响应文本
【发布时间】:2019-03-05 21:37:37
【问题描述】:

使用 Outlook VSTO 插件,我想在用户回复电子邮件时更改电子邮件文本。当响应不是内联时,我设法更改文本(即单击“回复”时,您还单击“弹出”)。这是通过修改MailItem.GetInspector.WordEditor.Range.Text来完成的。

但是,当使用内联响应(不单击“弹出”)修改上述成员时,会引发异常。我注意到原因是在内联响应中 MailItem.GetInspector.WordEditor 受到保护(只读)。所以我使用MailItem.GetInspector.WordEditor.Unprotect 方法来允许修改。在此之后,更改文本不再引发异常,但也没有任何效果 - 文本保持不变。

尝试使用 OutlookSpy 修改 Range.Text 时的行为相同。

为什么更改 Range.Text 对内联响应没有任何影响?

【问题讨论】:

    标签: outlook-addin


    【解决方案1】:

    对于内联响应,您不应使用MailItem.GetInspector.WordEditor,而应使用Explorer.ActiveInlineResponseWordEditor

    【讨论】:

    • 谢谢,Explorer.ActiveInlineResponseWordEditor 可以正常工作-两者之间有什么区别-不是同一个 Document 对象吗?另外,如果我正在使用一些 MailItem,我可以知道它的类型是内联响应吗? (否则,如果我的 MailItem 是一些新电子邮件,Explorer.ActiveInlineResponseWordEditor 与我正在使用的 MailItem 不对应)
    • 这取决于您的 MailItem 来自哪里。是 Explorer.ActiveInlineResponse 吗?
    • 另外,内联回复没有检查员。
    • 我正在监听 ItemSend 事件。在 ItemSend 回调中,我有一个 MailItem。我可以知道这是否是内联响应吗?如果不是内联响应而是常规电子邮件,那么Explorer.ActiveInlineResponseWordEditor 将为我提供一些内联响应电子邮件的 Document 对象,该对象恰好在发送我的常规电子邮件的同时处于活动状态。
    • 如果您使用 Application.ItemSend 事件,最好使用 MailItem.HTMLBody 属性。
    猜你喜欢
    • 2017-07-04
    • 1970-01-01
    • 2018-10-06
    • 2013-08-03
    • 1970-01-01
    • 2013-11-20
    • 2021-03-31
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多