使用Outlook DASL过滤器选择其中的等效项

时间:2015-08-28 09:42:12

标签: c# outlook vsto advanced-search

我使用Outlook VSTO AdvancedSearch功能搜索各自 PR_MESSAGE_ID 的邮件列表。

我的查询看起来像

 http://schemas.microsoft.com/mapi/proptag/0x1035001E = 'targetId1' OR
 http://schemas.microsoft.com/mapi/proptag/0x1035001E = 'targetId2' OR
 http://schemas.microsoft.com/mapi/proptag/0x1035001E = 'targetId3' OR 
 http://schemas.microsoft.com/mapi/proptag/0x1035001E = 'targgetId4' ...etc.

我质疑这种方法的性能,我想知道是否有一个更优雅的查询,类似于 SELECT something WHERE' MESSAGE_ID' IN(targetId1,targetId2等)

1 个答案:

答案 0 :(得分:0)

不,AdvancedSearch是一个正确的选择,因为搜索是在后台执行而不是阻止UI线程。此外,您可以搜索多个forlders中的项目。

所有DASL查询都以区分大小写的前缀“@SQL =”开头,但Application.AdvancedSearch的DASL查询除外。

有关其他替代方案,请参阅Filtering Items