Outlook加载项:从新电子邮件获取附件并计算总大小

Outlook加载项:从新电子邮件获取附件并计算总大小,outlook,outlook-addin,office-js,outlook-restapi,Outlook,Outlook Addin,Office Js,Outlook Restapi,我正在使用outlook加载项。我有一个要求,如果附件的总大小>10MB,我必须抛出错误 我使用以下命令将新电子邮件保存为草稿 const officeIns = this.getOfficeIns(); officeIns.context.mailbox.item.saveAsync((result) => { cb(result.value); }); 我有以下代码来获取电子邮件附件 //officeIns.context.mailbox.item.saveAsync的内部回

我正在使用outlook加载项。我有一个要求,如果附件的
总大小>10MB
,我必须抛出错误

我使用以下命令将新电子邮件保存为草稿

const officeIns = this.getOfficeIns();
officeIns.context.mailbox.item.saveAsync((result) => {
   cb(result.value);
});
我有以下代码来获取电子邮件附件


//officeIns.context.mailbox.item.saveAsync的内部回调函数
let headers=新的HttpHeaders();
headers=headers.set('Authorization','Bearer${olUserTokenObj['token']}`);
const emailMessageId=officeIns.context.mailbox.convertorestId(messageId,officeIns.MailboxEnums.RestVersion.v2\u 0);
log('rest id',emailMessageId);
const options={headers:headers,withCredentials:false};
设graphApiUrl=`https://outlook.office.com/api/v2.0/me/messages`;
graphApiUrl=`${graphApiUrl}/${emailMessageId}/attachments?$select=Size,Name&&${Date.now()}`;
const data=wait this.httpClient.get(graphApiUrl,options.toPromise();
// ... 从'data.value'计算总大小`

如果获取附件时出错,我将以10秒的延迟重试获取附件5次

然而,附件只是在某些时候保存,而不是大部分保存。我在outlook客户端的加载项中看到了更多此问题

似乎
saveAsync
没有保存附件。有人能帮我解决这个问题吗

问题:

  • 我可以使用saveAsync函数保存附件吗

  • 我们是否有任何office.js事件在将所有附件保存到服务器后触发

  • 还有别的办法解决这个问题吗

  • 我已经阅读了这份文件,没有找到相关信息。

    您可能在saveAsync和桌面客户端缓存模式下遇到问题。其他人已经注意到了这个问题,下面是其中一个问题的解释,以及问题的一些可能缓解措施。还有来自的增强/功能请求,您可以升级,并希望在不久的将来完成。

    这个答案很可能就是正在发生的事情。如何在您的场景中添加附件(这是一个很大的问题)。如果您是通过Graph/EWS添加它们,那么它们将不会显示在客户端中。如果在客户机上添加了它们(通过UI/用户或通过addFileAttachmentAsync api),则应该保存它们并在某个时候上传到服务器。但是,由于缓存模式,客户端/服务器同步可能需要一些时间。