首页 > 解决方案 > 访问 Outlook Web 加载项中的附件

问题描述

我知道我可以通过以下方式访问附件Office.context.mailbox.item.attachments

同样对于每个附件,我都可以访问其成员,例如name

但是我真的可以访问它的内容并将其发送到外部服务器来显示吗?例如,我想将 pdf 附件发送到服务器,并在服务器上显示该 pdf 文件的内容。

标签: office-jsoutlook-web-addins

解决方案


事实证明,Outlook 加载项无法将所选项目的附件直接传递给在您的服务器上运行的远程服务。相反,加载项可以使用附件 API 将有关附件的信息发送到远程服务。然后,该服务可以直接联系 Exchange 服务器以检索附件。

function getAttachmentToken() {
  if (serviceRequest.attachmentToken == "") {
      Office.context.mailbox.getCallbackTokenAsync(attachmentTokenCallback);
  }
}

function attachmentTokenCallback(asyncResult, userContext) {
  if (asyncResult.status === "succeeded") {
      // Cache the result from the server.
      serviceRequest.attachmentToken = asyncResult.value;
      serviceRequest.state = 3;
      testAttachments();
  } else {
      showToast("Error", "Could not get callback token: " + asyncResult.error.message);
  }
}

// Initialize a context object for the add-in.
//   Set the fields that are used on the request
//   object to default values.
var serviceRequest = {
    attachmentToken: '',
    ewsUrl         : Office.context.mailbox.ewsUrl,
    attachments    : []
    };

通过 EWS 托管 API 检索附件


推荐阅读