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

Office 365 API:如何获取邮件所属的共享邮箱/文件夹信息?

解决共享文件夹邮件下载的问题

当处理共享文件夹中的邮件时,你需要从Office.context.mailbox.item.sharedProperties对象中获取共享邮箱的关键信息,这是当前代码遗漏的核心部分。

具体修复步骤:

  • 获取共享邮箱所有者地址:当isFromSharedFolder为true时,Office.context.mailbox.item.sharedProperties会包含共享资源的详细信息,其中ownerEmailAddress就是你需要的${sharedfolder-email}。
  • 适配个人/共享场景:针对个人邮箱和共享邮箱分别处理邮箱地址,确保API路径的正确性。
  • 更新代码逻辑:修改你的JavaScript代码,补充共享邮箱信息的读取逻辑:
Office.context.mailbox.getCallbackTokenAsync(function(result) {
  if (result.status !== "succeeded") {
    printError(outputEl, "Error happened (access token was not issued), try again or contact support");
    return;
  }

  var token = result.value;
  var ewsurl = Office.context.mailbox.restUrl;
  var ewsItemId = Office.context.mailbox.item.itemId;
  var isFromSharedFolder = Office.context.mailbox.initialData.isFromSharedFolder;
  let targetEmail = '';
  
  if (isFromSharedFolder) {
    // 读取共享邮箱所有者的邮箱地址
    targetEmail = Office.context.mailbox.item.sharedProperties.ownerEmailAddress;
  } else {
    // 个人邮箱场景使用当前用户邮箱
    targetEmail = Office.context.mailbox.userProfile.emailAddress;
  }

  const itemId = Office.context.mailbox.convertToRestId(ewsItemId, Office.MailboxEnums.RestVersion.v2_0);
  // 构造正确的下载API路径
  const downloadUrl = `https://outlook.office365.com/api/v2.0/users/${targetEmail}/messages/${itemId}/$value`;
  // 后续执行下载请求逻辑...
});

额外注意事项:

  • 确保插件清单(manifest.xml)中开启共享文件夹支持:将SupportsSharedFolders属性设置为true,同时权限需包含ReadWriteMailbox或对应精细权限,否则无法读取sharedProperties。
  • 若处理的是公共文件夹而非用户共享邮箱,可通过sharedProperties.folderName确认具体文件夹,但ownerEmailAddress仍是构建API路径的核心参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:06:27