【问题标题】:Add information message when reading email阅读电子邮件时添加信息消息
【发布时间】:2021-07-26 19:27:17
【问题描述】:

我想在用户阅读特定电子邮件时显示一条信息消息(即该电子邮件被标记为外部)。该消息应以与 Outlook 类别相同的方式显示。 我知道我可以使用 Exchange 传输规则来实现这一点,但我的客户不想修改邮件本身。他更喜欢在 UI 中显示消息而不更改电子邮件正文。另一种选择是使用 Office.context.mailbox.item.notificationMessages 界面,但正如我所说,如果可能,我不想修改电子邮件项目。

你认为使用 Outlook JS 插件可行吗? 我对 VSTO 插件的需求与此类似:How can my Outlook VSTO Add-in modify the read email form?

【问题讨论】:

标签: outlook outlook-addin outlook-web-addins


【解决方案1】:

Office.context.mailbox.item.notificationMessages 接口提供了addAsync 方法,该方法接受JSONMessage 参数,该参数表示包含要添加到项目的通知消息的JSON 对象。它包含一个NotificationMessageDetails 对象。在属性中,您可以找到 persistent 属性,它指定消息是否应该是持久的。仅在类型为 InformationalMessage 时适用。如果为true,则消息将一直保留,直到被此加载项删除或被用户关闭。如果为 false,则在用户导航到其他项目时将其删除。对于错误通知,消息会一直存在,直到用户看到一次。为不受支持的类型指定此参数会引发异常。

如果是类别,消息会被修改。

您知道是否可以在打开阅读表单后立即执行该功能而无需单击操作按钮?

Web 插件仅在当前选定项目的上下文中运行。您可以固定任务窗格,然后您将能够注册事件处理程序以获取更改通知。事件处理程序应该接受一个参数,它是一个对象字面量。此对象的 type 属性将设置为 Office.EventType.ItemChanged。调用事件时,Office.context.mailbox.item 对象已更新以反映当前选定的项目。

Office.initialize = function (reason) {
  $(document).ready(function () {

    // Set up ItemChanged event
    Office.context.mailbox.addHandlerAsync(Office.EventType.ItemChanged, itemChanged);
    });
};

function itemChanged(eventArgs) {
  // Update on the new current item
}

【讨论】:

  • 如何使用将由 ItemHasRegularExpressionMatch 触发的上下文插件?我正在考虑使用始终匹配的正则表达式,以便在每个选定项目上运行 Office.context.mailbox.item.notificationMessages 函数?
  • 你可以试试,我从未尝试过使用通用正则表达式模式。
  • 当我使用“.*”模式时它可以工作,但它会突出显示正文中的所有字符串,这就是逻辑......
  • 好吧,如果您对突出显示所有字符串感到满意...
  • 并非如此,但这就是上下文插件的工作方式。再次感谢您
【解决方案2】:

目前不支持在读取模式下基于事件激活加载项。我们在 ourTech Community Page 上跟踪 Outlook 加载项功能请求。请在那里提交您的请求并选择适当的标签。我们在规划过程中会考虑技术社区的功能请求。

目前,仅 Compose 模式支持基于事件的加载项激活。你可以在这里探索更多-Configure your Outlook add-in for event-based activation - Office Add-ins | Microsoft Docs

【讨论】:

    猜你喜欢
    • 2019-04-29
    • 2021-02-06
    • 2022-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多