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

Office JS Outlook插件:能否在撰写邮件表单加载时自动设置正文?

如何在Outlook撰写邮件加载时自动设置正文(无需点击按钮)

当然可以实现!你目前用的Add-in Commands是靠用户点击触发代码,但要在撰写表单加载时自动执行逻辑,得用到Outlook加载项的**事件激活(Event-based activation)**功能——这正是为这类自动触发场景设计的。

下面是具体的实现步骤:

1. 修改清单文件(manifest.xml)

你需要在清单中添加EventBasedExtension扩展点,指定撰写邮件表单加载时触发的事件和对应的处理函数。

在清单的<VersionOverrides>节点下,补充以下配置:

<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
  <VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
    <!-- 保留你原有的Add-in Commands配置 -->
    <EventBasedExtensions>
      <EventBasedExtension Type="Mailbox">
        <EventHandlers>
          <!-- 监听邮件撰写表单加载事件 -->
          <EventHandler Type="ItemEdit" FunctionName="onMessageComposeLoad">
            <Items>
              <Item Type="Message"/>
            </Items>
            <SupportsSharedFolders>false</SupportsSharedFolders>
          </EventHandler>
        </EventHandlers>
      </EventBasedExtension>
    </EventBasedExtensions>
    <!-- 其他原有配置 -->
  </VersionOverrides>
</VersionOverrides>

这里的ItemEdit事件会在用户打开撰写邮件表单(包括新建、回复、转发邮件)时触发,FunctionName指定了要执行的JavaScript函数名。

2. 实现自动设置正文的代码

在你的加载项JS文件中,编写onMessageComposeLoad函数,调用Office JS API完成正文设置:

// 关联事件处理函数与Office系统
Office.actions.associate("onMessageComposeLoad", onMessageComposeLoad);

async function onMessageComposeLoad(event) {
  try {
    // 自定义要填充的正文内容(支持HTML格式)
    const autoFillContent = "<p>这是自动填充的邮件正文👋</p><p>可以用HTML标签来排版内容,比如换行、加粗:<strong>重要提示</strong></p>";
    
    // 异步设置邮件正文
    await Office.context.mailbox.item.body.setAsync(
      autoFillContent,
      { coercionType: Office.CoercionType.Html } // 指定内容格式为HTML,也可改用Text设纯文本
    );
    
    // 通知Office事件处理完成,必须调用
    event.completed();
  } catch (error) {
    console.error("自动填充正文失败:", error);
    // 即使出错也要调用completed,避免加载项被标记为异常
    event.completed();
  }
}
  • 一定要调用event.completed(),告诉Office你的逻辑已经执行完毕,否则加载项可能会被判定为超时。
  • 如果需要纯文本内容,把coercionType改成Office.CoercionType.Text即可。

3. 关键注意事项

  • 版本兼容性:事件激活功能需要Outlook 2016(Windows版,版本16.0.8431.1000及以上)、Outlook网页版、Mac版Outlook 2016及更高版本支持。
  • 权限配置:确保清单中的<Permissions>节点设置为ReadWriteMailbox,因为修改邮件正文需要读写权限:
    <Permissions>ReadWriteMailbox</Permissions>
    
  • 测试验证:修改清单后,需要重新部署加载项,在Outlook中打开撰写表单,确认正文是否被自动填充。

这样就能实现你想要的“撰写邮件加载时自动设置正文”的功能,完全不需要用户点击按钮啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:33:48