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

getAllInternetHeadersAsync获取已发送邮件时返回空字符串问题求助

问题:getAllInternetHeadersAsync 获取已发送邮件时返回空字符串
  • 调用Office.MessageRead.getAllInternetHeadersAsync()获取已发送邮件的Internet Headers时,返回值asyncResult.value为空字符串
  • 获取已接收邮件时功能完全正常
  • 依赖的emailjs-mime-parser本身工作正常,问题出在API返回的原始内容为空

相关代码:

import parser from 'emailjs-mime-parser';

export const getHeaders = async (mail: Office.MessageRead) => {
  return await new Promise((resolve, reject) => {
    mail.getAllInternetHeadersAsync((asyncResult) => {
      if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
        const response = parser(asyncResult.value);
        resolve(response);
      } else {
        reject(new Error(asyncResult.error.message));
      }
    });
  });
};

解决方案

1. 检查外接程序权限配置

确认外接程序的manifest.xml中是否包含ReadWriteMailbox或至少ReadMailbox权限。已发送邮件的完整Headers读取可能需要更高权限,仅ItemRead权限可能不足以获取对应内容。
权限配置示例:

<Permissions>ReadWriteMailbox</Permissions>

2. 切换为同步API调用

如果外接程序运行在支持同步API的环境(如Outlook桌面客户端、新版Web客户端),可尝试使用同步版本的getAllInternetHeaders(),规避异步回调的潜在问题:

export const getHeaders = (mail: Office.MessageRead) => {
  try {
    const headers = mail.getAllInternetHeaders();
    const response = parser(headers);
    return response;
  } catch (error) {
    throw new Error((error as Error).message);
  }
};

3. 直接读取InternetHeaders属性

部分Exchange/Outlook环境中,已发送邮件的Headers可能存储在独立属性中,可尝试通过getItemPropertyAsync直接读取:

export const getHeaders = async (mail: Office.MessageRead) => {
  return await new Promise((resolve, reject) => {
    mail.getItemPropertyAsync("InternetHeaders", (asyncResult) => {
      if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
        const response = parser(asyncResult.value as string);
        resolve(response);
      } else {
        reject(new Error(asyncResult.error.message));
      }
    });
  });
};

4. 升级Outlook客户端版本

部分旧版Outlook客户端(尤其是Web版)存在已发送邮件Headers获取的bug,升级到最新版本后重试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:12:33