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

Outlook Web加载项:保存邮件及启动本地exe可行性咨询

Outlook Web加载项实现邮件保存与本地exe调用方案

核心问题解答

1. 能否保存选中邮件并复用原有exe?

完全可以。Outlook Web加载项虽无法直接写入本地文件系统,但可通过Office JS API获取邮件的完整MIME内容,再将内容传递给你的原有exe,由exe完成临时文件夹保存和后续处理逻辑。

2. 如何从Web加载项启动本地exe?

受浏览器沙箱限制,Web加载项不能直接启动本地程序,需通过以下两种桥接方式实现:


具体实现步骤

第一步:获取选中邮件的MIME内容

使用Office JS API的getAsync方法获取邮件的MIME格式内容,这是原有exe处理邮件的核心数据:

Office.context.mailbox.item.getAsync(
  Office.MailboxEnums.ItemProperties.MimeContent,
  (result) => {
    if (result.status === Office.AsyncResultStatus.Succeeded) {
      const rawMime = result.value.content;
      const base64Mime = btoa(rawMime); // 转base64方便传递
      // 下一步将base64Mime传递给本地exe
    }
  }
);

第二步:启动本地exe并传递数据

方案一:自定义URL协议(简单易实现)

  • 注册协议:在Windows注册表(或macOS的plist文件)中注册自定义协议(比如outlooktool://),将其关联到你的exe路径。
  • 唤起exe:在Web加载项中构造包含邮件数据的协议URL,通过window.open触发:
    window.open(`outlooktool://process?mime=${base64Mime}`);
    
  • exe处理:exe解析URL中的mime参数,解码base64后保存到临时文件夹,再执行原有处理逻辑。
  • 注意:URL参数长度有限制,大邮件可能无法传递;浏览器会弹出安全确认提示,需用户手动允许。

方案二:Chrome/Edge原生消息传递(适合大邮件)

  • 适配exe协议:修改你的exe(或写一个轻量代理程序),支持Chrome原生消息的通信规范(接收JSON格式输入,输出JSON响应)。
  • 配置manifest:创建一个JSON格式的manifest文件,指定exe路径、允许通信的Outlook域名(https://outlook.office.com),并将文件放到浏览器指定的系统目录(Windows为%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\NativeMessagingHosts)。
  • Web加载项通信:使用Chrome原生消息API发送数据:
    chrome.runtime.sendNativeMessage(
      'com.yourcompany.outlooktool', // manifest中指定的ID
      { mime: base64Mime },
      (response) => {
        console.log('exe处理结果:', response);
      }
    );
    
  • 优势:无参数长度限制,安全提示更少;缺点:需要用户手动部署manifest,或通过安装包批量配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 22:45:30