我添加"添加附件"命令作为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
答案 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,则它将无法工作。