我正在使用Office.context.mailbox.item.saveAsync
方法保存电子邮件草稿。此方法返回itemId
,稍后我将用它来调用EWS服务器以检索电子邮件eml内容,但是返回的eml内容缺少某些附件。
这仅在启用了缓存模式的桌面应用程序(Outlook 2013)上发生。在Web上使用Outlook时,它可以正常工作。
我正在使用ews-java-api
从EWS检索电子邮件。
是否有办法知道电子邮件保存的完成时间?
由于1MB的响应限制,我无法使用Office.context.mailbox.item.saveAsync.makeEwsRequestAsync
。
答案 0 :(得分:1)
有没有办法知道电子邮件保存的时间?
如果出现以下情况:“是否有办法知道电子邮件保存的完成时间?”是您的问题,答案是否。您可能会尝试使用丑陋的解决方案,当对Id
使用子序列EWS查询时,会从循环中的saveAsync
获得并等待成功。根据环境的不同,这可能要花几秒钟到半分钟左右的时间。不确定加载项最终响应时,您的客户(用户)是否会等待这么长时间。
您可能会从以下主题获得更多信息:App for Outlook: EWS request failed with item Id returned by item.saveAsync on compose new message
编辑:
简单的GetItem
请求可以如下使用...
<GetItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<ItemShape>
<t:BaseShape>IdOnly</t:BaseShape>
</ItemShape>
<ItemIds><t:ItemId Id="' + itemId + '"/></ItemIds>
</GetItem>
如果商品是在交易所创建的,则请求应返回ChangeKey
。
答案 1 :(得分:1)
在“缓存”模式下,该项目需要花费一些时间才能同步到服务器。人们通常会轮询直到他们想要的数据在那里。 此外,他们可以编写自定义属性,并在需要时检查该属性以确保其项目是最新的。 您可以在此处找到有关自定义属性的一些详细信息:Client Extension Message Object Protocol,Mail App Custom Properties和Mail App Accesses Custom Properties