使用EWS查找所有会话项目,包括已发送的项目

时间:2015-09-17 09:44:00

标签: email soap exchange-server exchangewebservices

在Exchange 2010中,引入了令人敬畏的操作FindConversation。但是,此操作只允许您指定一个文件夹来查找对话,因此当您使用FindConversation时,例如在inbox - 文件夹中,您将无法获得自己发送的对话部分(因为它们位于sentitems - 文件夹中)。

为了缓解这种情况,我从conversationIds - 操作中获取了所有唯一的FindConversation,并使用一个大FindItem - 条款来定期Restriction对于属于任何这些对话的项目。这给了我错误: 该属性不能与此类限制一起使用

然后我要求每个对话中第一个项目的Extended Property 0x3013,这是其他类型的ConversationId(?),并使用上述相同的方法。这实际上有效!然而,这非常缓慢,并且几乎毁了伟大的最终用户体验一个简单的FindConversation - 操作后跟GetItem - 操作给出了。

是否有更好的方式来完成整个对话(包括用户自己的邮件)?

1 个答案:

答案 0 :(得分:0)

我最终取出每个对话的ConversationTopic(您在FindConversation - 操作中获得),并创建了一个大Rectriction并询问了{{1}中的项目 - 具有sentitems - 操作的任何这些主题的文件夹。然后,当我收到回复时,我将每个项目映射到他们所属的对话。这样我就不必进行2 Finditem - 操作,而且速度非常快。