Dev*_*rry 5 outlook office-js outlook-web-addins
注意:这个特殊问题对我们的客户有重大影响,这会转化为对收入产生直接影响的高业务影响。
当用户在撰写电子邮件草稿时与我们的加载项交互时,我们的 Outlook 的 Office 加载项如何最大限度地减少EWS GetItem API为itemId我们收到的返回 OK 响应之前所需的时间Office.context.mailbox.item.saveAsync()?
如果事实证明我们的加载项无法控制项目何时持久保存到 EWS,那么最终用户可以做些什么来加快速度?
我们正在寻找 (a) 技术解决方案或 (b) 消息来指导我们的客户如何缓解/修复/解决此问题。
我们的一些客户无法使用我们的 Outlook Office 加载项发送电子邮件,或者必须等待很长时间(> 2 分钟)才能发送电子邮件。
我们希望所有客户都能够使用我们的加载项发送电子邮件,而无需等待不合理的时间。
根据我们的日志和客户报告,此问题仅存在于Outlook 2016 for Windows桌面应用程序中。我们没有证据表明该问题存在于任何其他版本的 Outlook 中,包括 Outlook 2013 或 Outlook for Mac,但该问题也可能存在于这些客户端中。
我们的加载项与撰写模式集成,以在撰写电子邮件时提供其他功能,例如模板、跟进、打开和点击跟踪以及计划。
我们的插件与我们的 SaaS 产品协同工作,如下所示:
我们的加载项使用元数据设置电子邮件消息的 EWS 扩展属性,指示该消息启用了哪些功能。
我们的 SaaS 产品带外配置为通过 EWS API 从客户的邮箱中读取数据。当它遇到我们的 Office 加载项编写的 EWS 扩展属性时,它会触发代码路径以满足所需的行为。
我们问题的根本原因是我们在 Outlook 2016 for Windows 中与 EWS 的交互。为了成功地与 EWS 交互以读取/写入邮箱项目,它必须知道该项目。
的文档Office.context.mailbox.item.saveAsync()说:
在 Outlook Web App 或 Outlook 联机模式中,项目将保存到服务器。在缓存模式下的 Outlook 中,项目将保存到本地缓存。
它继续说:
注意:如果您的加载
saveAsync项在撰写模式下调用某个项目以便itemId与 EWS 或 REST API 一起使用,请注意,当 Outlook 处于缓存模式时,该项目可能需要一些时间才能真正同步到服务器。在项目同步之前,使用itemId将返回错误。
因此,我们得出的结论是Office.context.mailbox.item.saveAsync(),虽然它确实返回了一个最终有效的 itemId,但并不能保证任何后续的 EWS 交互都会成功。到目前为止,我们还没有发现任何方法可以加速 Outlook 客户端实际让 EWS 了解邮箱项目的过程。
我们已尝试通过轮询 EWS GetItem来尝试ChangeKey使用itemId我们从 接收到的项目获取Office.context.mailbox.item.saveAsync(). 虽然我们已经看到这最终会成功,但可能需要一分钟或更长时间才能发生。对于我们的客户来说,等待的时间实在是太长了。
如果 Outlook 2016 for Windows 桌面客户端处于“缓存模式”,用户是否可以执行以下操作:
小智 1
在缓存模式下无法加快速度。不幸的是,这是撰写模式下 saveAsync 的限制。一些注意事项:
1) EWSId 仅当项目为草稿时才有效。发送后,当该项目在已发送项目中时,它将有一个新的 EWSId,该 EWSId 无法从 Office.js 获取
2) 您能否将您的信息保存到自定义属性中,而不是 EWS 扩展属性中。(Office.context.mailbox.item.customProperties) https://dev.office.com/reference/add-ins/outlook/1.5/CustomProperties?product=outlook
这些属性将保存到已发送项目的邮件中,但不会被传输。那么你能找到这些属性吗
它们以键/值对的形式存储在项目上的 JSON 字典中。mapi 属性的名称是“cecp-[清单中的扩展 ID]”(在 PS_PUBLIC_STRINGS 中)
https://msdn.microsoft.com/en-us/library/office/cc842512.aspx
3)听起来确实是解决这个问题的更好方法是使用 Office.js 函数来提供对此的写访问权限?(尽管我们不完全理解您的情况)。对新功能的请求应通过 UserVoice 进行:
https://officespdev.uservoice.com/forums/224641-general/category/131778-outlook-add-ins。
4)处于在线模式将大大减少时间。用户可以知道他或她是否处于在线模式,但外接程序不能。
此外,状态栏在缓存模式下会显示“已连接到 Microsoft Exchange”,在在线模式下会显示“与 Microsoft Exchange 联机”。
切换到在线模式会消除缓存模式所具有的许多优势。Outlook 2016 中默认使用缓存模式。
| 归档时间: |
|
| 查看次数: |
958 次 |
| 最近记录: |