2017-05-31 94 views
1

我正在编写一个需要MIME格式的电子邮件内容的插件。现在我使用ewsurl(),getCallBackTokenAsync()Office.context.mailbox.itemId api来查找EWS URL,访问令牌,消息ID并通过Ajax将其发送到我的后端。我的后端向EWS发送SOAP请求并下载电子邮件。这种方法是否正确?在Outlook Web插件中访问电子邮件内容

我主要关心的是如果EWS端点看到来自同一台机器的太多请求,是否会有任何限制。例如,组织中的几个用户(比如说几百个用户)可以同时使用该加载项。在这种情况下,附加后端可以向EWS发送多个并发请求。如果EWS看到来自同一个加载/同一个后端机器的太多请求,EWS是否会实施一些限制?

是否有其他方法?

回答

0

这是目前唯一的方法。 Office.js和Graph都不支持获取原始电子邮件消息。鉴于插件是在单个电子邮件的上下文中运行的,我无法想象这最多会导致每秒多次调用,所以我不会太在意节流。

+0

谢谢马克。为了进一步阐明我的问题,如果组织中的几个用户(比如几百个)同时使用加载项。在这种情况下,加载项后端可以向EWS发送多个并发请求。如果EWS看到来自相同加载项/相同后端机器的太多请求,EWS是否会实施一些限制。 – bala

0

我正在写一个插件,需要MIME格式的电子邮件内容。

能够得到原始MIME消息。 Exchange不存储MIME内容。您可能会生成通过Exchange即时完成的生成的MIME内容,并且此转换很昂贵。 Resieved MIME消息与Exchange收到的原始MIME没有任何关系,那为什么要麻烦呢? EWS请求所能达到的最大值是原始邮件标题(PR_TRANSPORT_MESSAGE_HEADERS),但不是完整的原始MIME邮件。

限制:如果您要使用来自客户端的EWS请求(makeEwsRequestAsync),您将被限制为3个异步调用和1 Mb的响应。如果你从你的服务器上这样做,你将能够通过这些限制。更多关于此:Limits for activation and JavaScript API for Outlook add-ins

+0

感谢Slava的链接。这很有用。通过“MIME格式的电子邮件内容”,我的意思是我们获得的响应GetItem EWS调用的部分的值。 – bala

+0

@BalakrishnanRajkumar我修改了我的答案,以澄清我的观点。我所说的是通过互联网旅行的“原始MIME”。由于Exchange不保留此原始MIME,因此无法检索。取而代之的是,您将收到由Exchange MIME内容生成的内容,这与原始MIME无关。它会/可能使用不同的编码,边界等。这被认为是昂贵的Exchange操作。 –