使用智能警报处理 Outlook 外接程序中的 OnMessageSend 和 OnAppointmentSend 事件

OnMessageSendOnAppointmentSend 事件利用智能警报,允许用户在 Outlook 邮件或约会中选择“发送”后运行逻辑。 借助智能警报,外接程序的用户可以利用机会改进其电子邮件内容、添加缺少的敏感度标签,或在会议邀请中包含重要收件人。

智能警报通过基于事件的激活功能提供。 若要了解如何将外接程序配置为使用此功能、使用其他可用事件、调试加载项等,请参阅 配置 Outlook 外接程序以用于基于事件的激活

注意

OnMessageSendOnAppointmentSend 事件在要求集 1.12 中引入。 请查看支持此要求集的客户端和平台

支持的客户端和平台

下表列出了智能警报功能支持的客户端-服务器组合,包括所需的最低Exchange Server累积更新(如果适用)。 不支持排除的组合。

客户端 Exchange Online Exchange 2019 本地 (累积更新 12 或更高版本) Exchange 2016 本地 (累积更新 22 或更高版本)
Windows
版本 2206 (内部版本 15330.20196) 或更高版本
Mac
版本 16.65.827.0 或更高版本
不适用 不适用
Web 浏览器 (新式 UI)

新的 Windows 版 Outlook (预览版)
不适用 不适用
iOS 不适用 不适用 不适用
Android 不适用 不适用 不适用

智能警报功能行为和方案

以下部分包括有关发送模式选项和功能在某些方案中的行为的指导。

可用的发送模式选项

将外接程序配置为响应 OnMessageSendOnAppointmentSend 事件时,必须在清单中包含发送模式属性。 其标记因外接程序使用的清单类型而异。

  • XML 清单:设置 LaunchEvent 元素的 SendMode 属性。
  • Microsoft 365 (预览版统一清单) :设置“autoRunEvents”数组中事件对象的“sendMode”选项。

如果加载项实现的条件未满足,或者加载项在事件发生时不可用,则会向用户显示一个对话框,提醒他们在发送邮件之前可能需要执行其他操作。 发送模式属性确定对话框中用户可用的选项。

下表列出了可用的发送模式选项。

发送模式选项规范名称 XML 清单名称 Microsoft 365 名称的统一清单
提示用户 PromptUser promptUser
软块 SoftBlock softBlock
Block

提示用户

如果项目不符合加载项的条件,用户可以在警报中选择“ 仍然发送” ,或解决问题,然后再次尝试发送该项目。 如果加载项处理项目需要很长时间,系统将提示用户停止运行加载项并选择“ 仍然发送”。 例如,如果加载项不可用 (加载加载项) 时出错,则将发送该项目。

提示用户对话框,其中包含“仍然发送”和“不发送”选项。

如果以下任一项适用,请在外接程序中使用 提示用户 选项。

  • 加载项检查的条件不是强制性的,但最好是在发送的邮件或约会中使用。
  • 你想要推荐一个操作,并允许用户决定是否要将其应用于正在发送的邮件或约会。

应用 提示用户 选项的一些方案包括建议将邮件或约会标记为低重要性或高重要性,以及建议对项目应用颜色类别。

软块

如果未配置清单的发送模式属性,则为默认选项。 系统会提醒用户,他们发送的项目不符合加载项的条件,并且必须先解决问题,然后才能再次尝试发送该项目。 但是,如果加载项在 (不可用,例如,加载加载项) 时出错,则会发送该项目。

具有“不发送”选项的软块对话框。

如果希望在发送邮件或约会之前满足条件,但不希望在加载项不可用时阻止用户发送项目,请在外接程序中使用 软阻止 选项。 使用 软阻止 选项的示例方案包括提示用户设置邮件或约会的重要性级别,以及检查在发送项目之前是否应用了适当的签名。

如果出现以下任何情况,则不会发送该项。

  • 该项不符合加载项的条件。
  • 加载项无法连接到服务器。
  • 加载加载项时出错。

带有“不发送”选项的阻止对话框。

如果加载项的条件是必需的,则使用 阻止 选项,即使加载项不可用也是如此。 例如,当要求用户在发送邮件或约会之前将敏感度标签应用到邮件或约会时, 阻止 选项是理想的选择。

加载项不可用

例如,如果在 (发送消息或约会时加载项不可用,则会发生错误,导致加载项无法加载) ,用户将收到警报。 用户可用的选项因应用于加载项的发送模式选项而异。

如果使用 “提示用户 ”或 “软阻止 ”选项,用户可以选择“ 仍然发送 ”以发送项目,而无需加载项进行检查,或 “稍后尝试 ”,让项目在加载项再次可用时进行检查。

对话框提醒用户加载项不可用,并为用户提供立即或稍后发送项目的选项。

如果使用 阻止 选项,则在加载项可用之前,用户无法发送项目。

提醒用户加载项不可用的对话框。仅当加载项再次可用时,用户才能发送该项。

重要

如果实现 发送模式替代 功能的智能警报加载项由于错误而无法完成事件处理,或者在事件发生时不可用,它将使用清单中指定的发送模式选项。

长时间运行的加载项操作

如果加载项运行时间超过 5 秒,但不到 5 分钟,则会提醒用户加载项处理邮件或约会所需的时间比预期要长。

如果使用提示用户选项,用户可以选择“仍然发送”以发送项目,而无需加载项完成其检查。 或者,用户可以选择“ 不发送” 以停止处理加载项。

对话框,提醒用户加载项处理项目所花费的时间超过预期。用户可以选择在不加载项完成其检查的情况下发送项目,或停止加载项处理该项目。

但是,如果使用 软块阻止 选项,则用户将无法发送项目,直到加载项完成处理它。

对话框,提醒用户加载项处理项目所花费的时间超过预期。用户必须等到加载项完成处理项目后才能发送项目。

OnMessageSendOnAppointmentSend 加载项应是短运行且轻型的。 若要避免长时间运行的操作对话框,请在激活 或 OnAppointmentSend 事件之前OnMessageSend使用其他事件处理条件检查。 例如,如果用户需要加密每封邮件或约会的附件,请考虑使用 OnMessageAttachmentsChangedOnAppointmentAttachmentsChanged 事件来执行检查。

加载项超时

如果加载项运行五分钟或更长,它将超时。如果使用提示用户选项,用户可以选择“仍然发送”以发送项目,而无需加载项完成其检查。 或者,用户可以选择“ 不发送”。

提醒用户加载项进程超时的对话框。用户可以选择在不加载项完成其检查的情况下发送项目,或者不发送该项目。

如果使用软块阻止选项,则在加载项完成其检查之前,用户无法发送该项目。 用户必须再次尝试发送项目才能重新激活加载项。

提醒用户加载项进程超时的对话框。用户必须再次尝试发送项目以激活加载项,然后才能发送邮件或约会。

脱机工作模式下的 Outlook 客户端

从版本 2310 (内部版本 16913.10000) ) 开始,在 Windows 上的 Outlook (中,实现 软阻止阻止 选项的智能警报加载项只能在 Outlook 客户端联机时处理邮件项目。 如果在发送邮件项目时在 Outlook 客户端中打开“ 工作脱机”模式 ,则不会将该项目保存到 “发件箱” 文件夹中,并提醒用户必须先停用“脱机工作”模式,然后才能尝试发送其项目。

提醒用户在 Outlook 客户端处于脱机工作模式时,智能警报加载项无法处理其邮件项的对话框。

在 Outlook on Mac 中, “发送 ”选项在“脱机工作”模式下不可用。 关闭“脱机工作”模式后,用户可以选择“ 发送 ”并激活“智能警报”加载项。

用户离开当前消息

例如,当用户离开他们发送的邮件时, (阅读其收件箱中的邮件) ,智能警报加载项的行为因 Outlook 客户端而异。 选择运行加载项的 Outlook 客户端的选项卡。

在窗口中撰写的邮件

从版本 2402 (内部版本 17310.10000) 开始,如果在单独的窗口中撰写消息(如新邮件),并且用户在选择“ 发送”后离开该消息,智能警报加载项将继续在后台处理该消息。 如果需要在发送消息之前执行其他操作,则会向用户显示相应的智能警报对话框, (请参阅) 可用的发送模式选项

阅读窗格中撰写的邮件

从版本 2402 (内部版本 17310.10000) 开始,如果正在 Outlook 阅读窗格中撰写答复、转发或现有草稿,并且用户在选择“ 发送”后离开该草稿,则会向用户显示一个包含选项的对话框。 可用的选项取决于加载项实现的 发送模式选项

如果实现了 提示用户 发送模式选项,则会显示以下选项。

  • 等待:此选项将在新窗口中打开正在撰写的消息,以便智能警报加载项可以继续处理它。 如果用户在处理过程中离开新打开的窗口,外接程序将继续在后台处理消息 (了解详细信息,请参阅消息 撰写在窗口中) 。 如果需要在发送消息之前执行其他操作,则会向用户显示相应的“智能警报”对话框。
  • 仍然发送:此选项终止加载项操作并发送消息。
  • 另存为草稿:此选项将终止加载项和发送操作,并将邮件草稿保存到邮箱的 “草稿” 文件夹中。

当用户导航离开由实现提示用户发送模式选项的智能警报加载项处理的消息时显示的对话框。

如果实现了 软块 发送模式选项,则仅显示 “等待 ”和“ 另存为草稿 ”选项。

当用户导航离开由实现软阻止或阻止发送模式选项的智能警报加载项处理的消息时显示的对话框。

在使用简单 MAPI 的应用程序中激活智能警报

注意

从版本 2301 (内部版本 17126.20004) 开始,此功能目前仅在 Outlook on Windows 中受支持。

用户可以通过某些使用 简单 MAPI 的应用程序发送邮件项目,即使 Outlook 客户端在发送项目时未运行也是如此。 发生这种情况时,任何已安装的智能警报加载项都不会激活以检查邮件项以确保符合性。

为了确保传出项目在发送前满足智能警报加载项的条件,必须在组织中的每个适用计算机上启用“运行 Outlook for Simple MAPI 邮件发送组策略”设置。

设置处于打开状态时的行为

“运行 Outlook for Simple MAPI 邮件发送 ”设置设置为 “启用”时,用户需要在以下方案中发送邮件项目时运行其 Outlook 客户端。

  • 文件通过 Excel、Word 或 PowerPoint 中的“共享>附加副本”选项作为附件发送。

    在 Word 中选择了“改为附加副本”选项。

  • 文件通过 文件资源管理器 中的“发送到>邮件收件人”选项作为附件发送。

    在 文件资源管理器 中选择了“发送给邮件收件人”选项。

  • 文件通过使用简单 MAPI 的应用程序发送,这将打开一个新邮件 Outlook 窗口。

如果用户的 Outlook 客户端在发送邮件时未运行,则会显示一个对话框,通知他们必须打开其客户端才能发送该项目。

发送邮件项目时提醒用户打开 Outlook 客户端的对话框。

关闭或未配置设置时的行为

在组织中将“运行 Outlook for Simple MAPI 邮件发送 ”设置设置为 “已禁用 ”或“ 未配置 ”时,使用实现简单 MAPI 的应用程序发送邮件项目的任何用户都可以执行此操作,而无需激活其智能警报加载项进行合规性检查。

配置组策略设置

默认情况下, “运行 Outlook for Simple MAPI 邮件发送 ”设置设置为 “未配置”。 若要打开设置,请执行以下操作:

  1. 下载最新的管理模板工具
  2. 打开“本地组策略编辑器”(gpedit.msc)。
  3. 导航到用户配置\管理模板\Microsoft Outlook 2016\杂项
  4. 打开 “运行 Outlook for Simple MAPI 邮件发送 ”设置。
  5. 在显示的对话框中,选择“ 已启用”。
  6. 选择 “确定” 或“ 应用” 以保存更改。

限制

OnMessageSend由于 和 OnAppointmentSend 事件通过基于事件的激活功能受支持,因此相同的功能限制适用于因这些事件而激活的加载项。 有关这些限制的说明,请参阅 基于事件的激活行为和限制

除了这些约束之外,每个 OnMessageSendOnAppointmentSend 事件只能声明在清单中一个实例。 如果需要多个 OnMessageSendOnAppointmentSend 事件,则必须在单独的外接程序中声明每个事件。

虽然可以更改“智能警报”对话框消息和 “不发送 ”按钮以适应加载项方案,但无法自定义以下内容。

  • 对话框的标题栏。 外接程序的名称始终显示在那里。
  • 消息的格式。 例如,无法更改文本的字号和颜色或插入项目符号列表。
  • 对话框消息旁边的图标。
  • 提供有关事件处理和进度信息的对话框。 例如,无法更改超时和长时间运行的操作对话框中显示的文本和选项。

如果在对话框中自定义“ 不发送 ”按钮,则只能为其分配任务窗格命令。 不支持函数命令。 如果使用分配的函数命令选择“ 不发送 ”按钮,则会忽略该命令,并且加载项将取消发送操作并关闭对话框。 发生这种情况时,不会显示或记录任何错误。 有关外接程序命令类型的指南,请参阅 外接程序命令的类型

在 Outlook 网页版 和新的 Windows 版 Outlook 中, (预览版) :

  • OnAppointmentSend仅当通过“新建事件”选项创建发送的会议时,才会发生该事件。 如果正在发送的会议是通过直接从日历中选择日期和时间创建的,则不会发生该 OnAppointmentSend 事件。
  • 转发会议时,仅当 OnAppointmentSend 组织者转发会议时,才会发生事件。 如果与会者将他们邀请的会议转发到,则不会发生这种情况。

最佳做法

智能警报功能可确保所有传出邮件项都符合组织的信息保护策略,并通过建议帮助用户改进其邮件。 若要确保加载项始终为用户提供流畅高效的发送体验,请遵循以下准则。

  • 不要让加载项进一步延迟发送操作。 智能警报加载项必须是短运行且轻型的。 避免使用大量验证重 OnMessageSend 载 和 OnAppointmentSend 事件处理程序。 若要防止出现这种情况,请在发生其他事件(如 OnMessageRecipientsChangedOnMessageAttachmentsChanged 事件)时预处理信息。 若要确定外接程序可以响应哪些事件,请参阅 为基于事件的激活配置 Outlook 外接程序的“支持的事件”部分。
  • 不要实现其他对话。 防止用户使用过多对话来压倒用户。 相反,自定义“智能警报”对话框中的文本以传达信息。 如果需要,还可以 自定义“ 不发送 ”按钮 (预览) ,通过任务窗格为用户提供其他信息和功能。
  • 在组织中启用适当的组策略设置。 若要确保智能警报加载项在每个邮件项目(包括使用实现简单 MAPI 的应用程序发送的邮件项目)上激活,请配置 “运行 Outlook for Simple MAPI 发送 ”设置。 若要详细了解此设置,请参阅 在使用简单 MAPI 的应用程序中激活智能警报

调试加载项

有关如何对智能警报加载项进行故障排除的指南,请参阅 排查基于事件的加载项和垃圾邮件报告加载项的问题

部署到用户

与其他基于事件的外接程序类似,使用智能警报功能的加载项必须由组织的管理员部署。 有关如何通过Microsoft 365 管理中心部署加载项的指南,请参阅配置 Outlook 外接程序进行基于事件的激活中的“部署到用户”部分。

重要

如果清单的 发送模式属性 设置为 软阻止提示用户 选项,则使用智能警报功能的加载项只能发布到 AppSource。 如果加载项的发送模式属性设置为 阻止,则只能由组织的管理员部署,因为它将失败 AppSource 验证。 若要详细了解如何将基于事件的外接程序发布到 AppSource,请参阅 基于事件的 Outlook 加载项的 AppSource 列表选项

智能警报与发送功能之间的差异

虽然智能警报和 即时发送功能 使用户有机会在发送消息和会议邀请之前改进其消息和会议邀请,但智能警报是一项较新的功能,可让你在提示用户采取进一步操作的方式方面更加灵活。 下表概述了这两个功能之间的主要差异。

属性 智能警报 On-send
支持的最低要求集 邮箱 1.12 Mailbox 1.8
支持的 Outlook 客户端 - Windows (经典版和新版 (预览版) )
- Web 浏览器 (新式 UI)
- Mac (新的 UI)
-窗户
- Web 浏览器 (经典和新式 UI)
- Mac (经典 UI 和新 UI)
支持的事件 XML 清单
- OnMessageSend
- OnAppointmentSend

Microsoft 365 (预览版统一清单)
- “messageSending”
- “appointmentSending”
XML 清单
- ItemSend

Microsoft 365 (预览版统一清单)
- 不支持
清单扩展属性 XML 清单
- LaunchEvent

Microsoft 365 (预览版统一清单)
- “autoRunEvents”
XML 清单
- Events

Microsoft 365 (预览版统一清单)
- 不支持
支持的发送模式选项 - 提示用户
- 软块
-块

若要详细了解每个选项,请参阅 可用的发送模式选项
阻止
加载项中支持的最大事件数 OnMessageSend 个事件和一个 OnAppointmentSend 事件。 一个 ItemSend 事件。
加载项部署 如果外接程序的发送模式属性设置为 软阻止提示用户 选项,则可以将其发布到 AppSource。 否则,加载项必须由组织的管理员部署。 加载项无法发布到 AppSource。 它必须由组织的管理员部署。
加载项安装的其他配置 将清单上传到Microsoft 365 管理中心后,无需进行其他配置。 根据组织的合规性标准和使用的 Outlook 客户端,必须配置某些邮箱策略才能安装加载项。

在基于事件的加载项中试用智能警报

准备好在基于事件的外接程序中实现智能警报了吗? 尝试 演练 ,在其中创建一个外接程序,用于在发送邮件之前检查文档或图片是否已附加到邮件。

另请参阅