AQS搜索EWS以发送到电子邮件地址

时间:2015-11-03 19:19:54

标签: c# email exchangewebservices

我有一个收集电子邮件收件箱,可以从多个系统获取通知。我能够按主题和流程成功搜索,但希望通过发送到的电子邮件地址进行搜索,因为主题正在变化和变化。似乎只按显示名称搜索,这是收集箱的名称,但我发送到别名。 db@domain.localotherdb@domain.localthisdb@domain.local  都指向一个收集帐户。

我喜欢这项工作

FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, "to:'db@domain.local'", new ItemView(10));

然后我可以根据发送到地址设置不同的处理。

我尝试设置SearchFilter,但ItemSchema似乎没有提供SentTo,只提供DisplayTo。

SearchFilter.ContainsSubstring sentToFilter = new SearchFilter.ContainsSubstring(ItemSchema.DisplayTo, "db@domain.local", ContainmentMode.Substring, ComparisonMode.IgnoreCase);
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, sentToFilter, new ItemView(10));

以下是我发现搜索选项可以在查询中 https://msdn.microsoft.com/en-us/library/office/dn579420(v=exchg.150).aspx

2 个答案:

答案 0 :(得分:0)

您正在使用ItemSchema。请考虑使用包含EmailMessageSchemaToRecipients

答案 1 :(得分:0)

感谢@ Moo-Juice带我到EmailMessageSchema,我能够找到发送到InternetMessageHeaders架构的

 SearchFilter.ContainsSubstring sentToFilter = new SearchFilter.ContainsSubstring(EmailMessageSchema.InternetMessageHeaders, "db@domain.local", ContainmentMode.Substring, ComparisonMode.IgnoreCase);
 FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, sentToFilter, new ItemView(10));