Office Outlook加载项 - 从安全位置添加附件

时间:2016-04-06 09:15:51

标签: outlook ms-office office365 outlook-web-addins

我添加"添加附件"命令作为Office Outlook加载项的一部分。

我想找到一种通过授权从URL添加文件的方法。

我想用ajax下载它,然后从blob中保存它,但看起来命令不支持它。 我的代码测试失败了:

const text = 'attachment content';
const blob = new Blob([text], {type: 'text/plain'});
const attachmentURI = window.URL.createObjectURL(blob);

Office.context.mailbox.item.addFileAttachmentAsync(
  attachmentURI,
  'file.txt',
  { asyncContext: null },
  function (asyncResult) {
    if(asyncResult.status == Office.AsyncResultStatus.Failed){
       console.log('error adding attachment: ' + asyncResult.error.message);
    }
    else {
      const attachmentID = asyncResult.value;
      console.log('added attachment: ' + attachmentID);
    }
  }
);

有关从具有权限的网址保存附件的任何建议吗?

功能文档: https://dev.office.com/docs/add-ins/outlook/add-and-remove-attachments-to-an-item-in-a-compose-form

2 个答案:

答案 0 :(得分:2)

如果您尝试将用户PC上的本地文件附加到电子邮件中,那么很遗憾您无法这样做,因为这当然是JavaScript。 Outlook加载项API中的附件方法只能处理基于Web的文件。您需要一个Web表单或其他机制将文件上传到您的Web服务到可访问的URI位置,然后您可以使用addFileAttachmentAsync方法指向该位置。 ASP.NET Web API是实现Web服务的一种替代方法。

答案 1 :(得分:1)

addFileAttachmentAsync attachmentURI参数发送到服务器(在OWA的情况下),或发送到Outlook应用程序(桌面Outlook)。然后,服务器或Outlook将下载并下载该文件,并将其附加到电子邮件中。如果OWA / Outlook无法访问您提供的URI,则它将无法工作。