我需要获取具有特定类别名称的所有电子邮件,我该怎么做?
现在我有这个:
var col = new List<SearchFilter>();
col.Add(new SearchFilter.ContainsSubstring(ItemSchema.Categories, "Processed"));
var filter = new SearchFilter.SearchFilterCollection(LogicalOperator.Or, col.ToArray());
FindItemsResults<Item> findResults = service.FindItems(
WellKnownFolderName.Inbox,
filter,
new ItemView(10)
);
但这给了我一个 Microsoft.Exchange.WebServices.Data.ServiceResponseException
,上面写着 {"The Contains 过滤器只能用于字符串属性。"}
我该怎么做?
最佳答案
据我所知,从 Exchange 2010 开始,类别是一个多值字段,因此它不适用于搜索筛选器。但是,您可以使用 AQS 搜索类别。 。下面的代码应该可以解决问题。
ExchangeService service = GetService();
var iv = new ItemView(1000);
string aqs = "System.Category:Processed";
FindItemsResults<Item> searchResult = null;
do
{
searchResult = service.FindItems(WellKnownFolderName.Inbox, aqs, iv);
foreach (var item in searchResult.Items)
{
Console.WriteLine(item.Subject);
}
iv.Offset += searchResult.Items.Count;
} while (searchResult.MoreAvailable == true);
关于c# - 按类别搜索 Exchange Server EWS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21575264/