outlook - Outlook 加载项:获取附件并计算新电子邮件的总大小
问题描述
我正在使用 Outlook 加载项。我有一个要求,如果附件是total size > 10MB
.
我使用以下将新电子邮件另存为草稿
const officeIns = this.getOfficeIns();
officeIns.context.mailbox.item.saveAsync((result) => {
cb(result.value);
});
我有以下代码来获取电子邮件附件
// Inside callback function to officeIns.context.mailbox.item.saveAsync
let headers = new HttpHeaders();
headers = headers.set('Authorization', `Bearer ${olUserTokenObj['token']}`);
const emailMessageId = officeIns.context.mailbox.convertToRestId(messageId, officeIns.MailboxEnums.RestVersion.v2_0);
console.log('rest id', emailMessageId);
const options = { headers: headers, withCredentials: false };
let graphApiUrl = `https://outlook.office.com/api/v2.0/me/messages`;
graphApiUrl = `${graphApiUrl}/${emailMessageId}/attachments?$select=Size,Name&_=${Date.now()}`;
const data = await this.httpClient.get(graphApiUrl, options).toPromise();
// ... calculating total size from `data.value`
如果获取附件时出错,我会以 10 秒的延迟重试获取附件 5 次
然而,附件只是在某个时候被保存,而且大部分时间都没有保存。我在 Outlook 客户端的加载项中更多地看到了这个问题。
似乎saveAsync
没有保存附件。谁能帮我解决这个问题
问题:
我可以使用 saveAsync 函数来保存附件吗?
在将所有附件保存到服务器后,我们是否有任何 office.js 事件触发?
有没有其他方法可以解决这个问题?
我已通读此文档,但未找到相关信息。 https://docs.microsoft.com/en-us/office/dev/add-ins/reference/objectmodel/requirement-set-1.7/office.context.mailbox.item#saveasyncoptions-callback
解决方案
saveAsync 和桌面客户端缓存模式可能存在问题。这个问题已经被其他人注意到了,这里有一个stackoverflow问题的解释以及一些可能的问题缓解方法。还有一个来自社区的增强/功能请求,您可以投票并希望它在不久的将来完成。
推荐阅读
- python - ValueError: int() 以 10 为底的无效文字:b'3\n1\n\n'
- powerapps - Power Apps - 创建唯一的集合列表
- javascript - 是否可以将字符串存储在 Json 文件中?
- scala - 如何在 Slick 中使用“ConstColumn”作为可选值
- java - 在将构建委托给 gradle 时,是否可以覆盖 IntelliJ IDEA 选择运行的 gradle 任务?
- angular - ChartJs - 饼图 - 如何删除饼图上的标签
- xml - 无法应用 @XStreamConverter ToAttributedValueConverter
- google-apps-script - 在表单提交触发器的 B 列中找到时如何从 A 列中删除数字
- javascript - 改变
- asp.net-core - 无法在 asp.net core mvc 中处理路由的 url