【发布时间】:2020-02-04 12:43:10
【问题描述】:
在我的 Outlook 插件中,我试图从活动电子邮件中获取附件。
我从以下位置复制粘贴了示例: https://docs.microsoft.com/en-us/javascript/api/outlook/office.attachmentcontent?view=outlook-js-preview
具体示例代码:
var item = Office.context.mailbox.item;
var options = {asyncContext: {currentItem: item}};
item.getAttachmentsAsync(options, callback);
function callback(result) {
if (result.value.length > 0) {
for (i = 0 ; i < result.value.length ; i++) {
result.asyncContext.currentItem.getAttachmentContentAsync(result.value[i].id, handleAttachmentsCallback);
}
}
}
function handleAttachmentsCallback(result) {
// Parse string to be a url, an .eml file, a base64-encoded string, or an .icalendar file.
switch (result.value.format) {
case Office.MailboxEnums.AttachmentContentFormat.Base64:
// Handle file attachment.
break;
case Office.MailboxEnums.AttachmentContentFormat.Eml:
// Handle email item attachment.
break;
case Office.MailboxEnums.AttachmentContentFormat.ICalendar:
// Handle .icalender attachment.
break;
case Office.MailboxEnums.AttachmentContentFormat.Url:
// Handle cloud attachment.
break;
default:
// Handle attachment formats that are not supported.
}
}
但在插件启动时,我收到一条错误消息,提示 item.getAttachmentsAsync 不是函数。
我查看了 API 文档寻求帮助,但找不到有关此问题的任何信息。
有什么线索吗?也许你也遇到过这个问题?
【问题讨论】:
-
您是否处于阅读模式? getAttachmentsAsync 是仅撰写模式的 API。
-
那么在阅读电子邮件时我应该使用哪种方法来获取附件?我在消息对象中看到似乎有一个方法
getAttachments,但它也不起作用。 -
在您提示 getAttachmentsAsync 是一个仅撰写模式的 API 之后,我发现在读取模式下您可以访问附件数组,如下所示:Office.context.mailbox.item.attachments
。如果它是 MailboxEnums.AttachmentType.Cloud 类型,那么您可以访问它的 url。例如,如何将 pdf 附加到电子邮件中,并且我想通过我的插件将该 pdf 传递到我的应用程序服务器。 -
另外,你可以看看
getAttachmentContentAsync。此处的示例代码:docs.microsoft.com/en-us/javascript/api/outlook/…。此 API 允许您检索附件的内容(以不同的格式),然后您可以将其发送到您的后端。
标签: outlook-addin email-attachments outlook-web-addins outlook-restapi