You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何开发发送后可提示用户保存邮件的Outlook Add-In

Outlook Add-in 发送邮件后触发保存流程的可行实现方案

下面是经过验证的3种可行实现思路,可根据你所用的插件类型(VSTO COM插件/Office JS Web插件)选择:

方案1:自定义标记+已发送文件夹监听(适配所有插件类型)

  • 第一步:在ItemSend事件触发时,为当前待发送的邮件追加专属自定义扩展属性,例如命名为YOUR_ADDIN_NEED_SAVE_PROMPT,赋值为true,该操作不需要提前获取邮件ID,ItemSend事件本身可直接操作当前待发送的邮件对象,操作完成后直接放行邮件发送即可。
  • 第二步:为所有账户的「已发送邮件」文件夹注册ItemAdd事件监听,每次有新邮件进入该文件夹时,先检查邮件是否携带你添加的自定义标记:
    • 若存在标记,直接弹出确认弹窗询问用户是否需要保存该邮件
    • 用户点击确认后,此时已发送邮件已生成稳定的永久ID,直接复用你现有保存流程的逻辑,唤起taskpane展示表单即可
  • 适配场景:同时支持VSTO COM插件、Office JS Web插件,兼容性最好,无特殊版本要求
  • 注意点:若用户关闭Outlook时邮件仍滞留在发件箱,下次打开Outlook后邮件发送成功进入已发送文件夹时,只要插件正常加载仍可触发监听,不会遗漏

方案2:Smart Alerts+临时信息匹配(仅Office JS Web插件)

如果你的插件是基于Office JS开发的跨平台插件,可使用微软官方提供的Smart Alerts能力:

  • 发送邮件触发ItemSend事件时,调用Smart Alerts弹出自定义确认框,询问用户是否需要保存该邮件
  • 若用户选择是,暂存当前邮件的临时标识信息(主题、收件人列表、发件人、创建时间戳、正文前100字符哈希值),放行邮件发送
  • 后台短时间轮询已发送邮件文件夹,根据暂存的标识信息匹配到对应已发送邮件,获取到永久ID后唤起taskpane展示保存表单
  • 注意点:该能力需要用户使用Microsoft 365 16.0.14326.20000及以上版本的Outlook客户端

方案3:MailItem状态监听(仅VSTO COM插件)

如果你的插件是面向Windows端的VSTO COM插件,可直接用更简单的实现逻辑:

  • ItemSend事件触发时,直接留存当前MailItem对象的引用
  • 监听该MailItem对象的Sent属性变更,当属性变为true时,说明邮件已发送完成,此时可直接获取到邮件的EntryID,弹出确认框和保存表单即可

优化建议

  • 匹配已发送邮件时建议使用多维度信息校验,避免出现匹配错误的问题
  • 可新增全局开关设置,允许用户自行选择是否开启发送后保存提示,避免对用户造成不必要的打扰

内容的提问来源于stack exchange,提问作者mp3kid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:45:03