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

Outlook打开邮件时触发Outlook add-ins事件处理程序的实现咨询

Outlook 插件邮件读取触发事件实现方案

可用事件说明

Outlook JavaScript API 提供了完全匹配需求的事件支持:

  • Office.EventType.ItemChanged:用户切换选中邮件、点击打开新邮件进入阅读模式时都会触发,是你所需场景的核心监听事件
  • 若需要插件激活时立刻执行一次逻辑,可以搭配Office.onReady() 初始化入口事件使用

实现思路

第一步:配置插件清单文件(manifest.xml)

先声明插件的激活规则和权限,确保插件能在邮件阅读场景下运行:

  • 配置Requirements节点指定API最低版本为1.5以上,推荐用1.10+版本兼容性更好
  • 新增Rule节点,设置xsi:type="ItemIs"、ItemType="Message"、FormType="Read",让插件在邮件阅读模式下自动激活
  • 按需申请权限:仅读取邮件内容申请ReadItem权限即可,如需修改邮件内容要申请ReadWriteItem权限

第二步:JS 代码注册事件并实现自定义逻辑

参考代码示例如下:

// 插件初始化入口
Office.onReady((info) => {
  if (info.host === Office.HostType.Outlook) {
    // 注册邮件打开/切换事件
    Office.context.mailbox.addHandlerAsync(
      Office.EventType.ItemChanged,
      onMailRead,
      (result) => {
        if (result.status === Office.AsyncResultStatus.Failed) {
          console.error("事件注册失败:" + result.error.message);
        }
      }
    );
  }
});

// 自定义邮件读取处理逻辑
function onMailRead(eventArgs) {
  const currentMail = Office.context.mailbox.item;
  // 此处插入你的自定义处理逻辑,比如读取邮件主题、发件人、正文等
  console.log("当前读取邮件主题:", currentMail.subject);
  // 异步处理完成后必须调用completed方法
  eventArgs.completed();
}

注意事项

  • 上述ItemChanged事件仅在插件侧边栏已打开的状态下生效,如果需要不需要用户打开插件、后台静默触发逻辑,可以配置基于事件的激活规则,在manifest中声明ExtensionPoint类型为LaunchEvent,指定触发事件为OnMessageRead即可
  • 读取邮件正文需要调用currentMail.body.getAsync()异步方法获取,不能直接同步读取
  • 桌面端Outlook、网页版Outlook对上述事件的支持一致,移动版Outlook需要单独做适配测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:09:04