使用 EWS 查找所有对话项目,包括已发送的项目
Find all conversation items, including sent items, with EWS
在 Exchange 2010 中,引入了很棒的操作 FindConversation
。但是,此操作只允许您指定一个文件夹来查找对话,因此当您使用 FindConversation
时,例如inbox
-文件夹,您将无法获得自己发送的对话部分(因为它们位于 sentitems
-文件夹中)。
为了缓解这种情况,我从 FindConversation
- 操作中提取了所有独特的 conversationIds
,并做了一个常规的 FindItem
和一个大的 Restriction
-条款要求属于任何这些对话的项目。这给了我错误:The 属性 cannot be used with this type of restriction.
然后我要求每个对话中第一项的Extended Property 0x3013
,这是其他类型的ConversationId
(?),并使用与上述相同的方法。这确实有效!然而,这是非常缓慢的,并且几乎破坏了良好的最终用户体验,一个简单的 FindConversation
-操作,然后是 GetItem
-操作给了。
有没有比上述更好的方法来获取整个对话(包括用户自己的邮件)?
我最后取出了每个对话的 ConversationTopic
(你在 FindConversation
-操作中得到),并创建了一个大的 Rectriction
并在 sentitems
-将这些主题中的任何一个作为自己的文件夹,并带有 Finditem
-操作。然后当我得到回复时,我将每个项目映射到它们所属的对话。这样我就不用做2次FindItem
操作了,而且速度非常快。
在 Exchange 2010 中,引入了很棒的操作 FindConversation
。但是,此操作只允许您指定一个文件夹来查找对话,因此当您使用 FindConversation
时,例如inbox
-文件夹,您将无法获得自己发送的对话部分(因为它们位于 sentitems
-文件夹中)。
为了缓解这种情况,我从 FindConversation
- 操作中提取了所有独特的 conversationIds
,并做了一个常规的 FindItem
和一个大的 Restriction
-条款要求属于任何这些对话的项目。这给了我错误:The 属性 cannot be used with this type of restriction.
然后我要求每个对话中第一项的Extended Property 0x3013
,这是其他类型的ConversationId
(?),并使用与上述相同的方法。这确实有效!然而,这是非常缓慢的,并且几乎破坏了良好的最终用户体验,一个简单的 FindConversation
-操作,然后是 GetItem
-操作给了。
有没有比上述更好的方法来获取整个对话(包括用户自己的邮件)?
我最后取出了每个对话的 ConversationTopic
(你在 FindConversation
-操作中得到),并创建了一个大的 Rectriction
并在 sentitems
-将这些主题中的任何一个作为自己的文件夹,并带有 Finditem
-操作。然后当我得到回复时,我将每个项目映射到它们所属的对话。这样我就不用做2次FindItem
操作了,而且速度非常快。