EWS服务器上缺少用于通过Outlook OfficeJS保存的草稿电子邮件的附件

时间:2018-08-02 16:04:05

标签: outlook-addin office-js ewsjavaapi

我正在使用Office.context.mailbox.item.saveAsync方法保存电子邮件草稿。此方法返回itemId,稍后我将用它来调用EWS服务器以检索电子邮件eml内容,但是返回的eml内容缺少某些附件。

这仅在启用了缓存模式的桌面应用程序(Outlook 2013)上发生。在Web上使用Outlook时,它可以正常工作。

我正在使用ews-java-api从EWS检索电子邮件。

是否有办法知道电子邮件保存的完成时间? 由于1MB的响应限制,我无法使用Office.context.mailbox.item.saveAsync.makeEwsRequestAsync

2 个答案:

答案 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 ProtocolMail App Custom PropertiesMail App Accesses Custom Properties