我正在尝试使用SearchFilter.ContainsSubstring在Exchange Web Services上过滤电子邮件,如下所示:
sfilter = New SearchFilter.ContainsSubstring(EmailMessageSchema.Sender, EmailAddress, ContainmentMode.Substring, ComparisonMode.IgnoreCase)
MailItems = service.FindItems(Folder.Id, sfilter, view)
很遗憾,这种方法行不通,我也不想使用查询,因为我无法保证我能使用Exchange Server 2013的功能。
通过在Fiddler中组合各种请求,我发现如果我删除电子邮件地址的最后一个字符,那么过滤器就会起作用,删除第一个字符,也是可以的 - 把它们放回去,就会出问题。
所以也许这有点挑剔,必须是真正的子字符串才能符合条件,所以如果我将包含模式更改为FullString-它不起作用,因此我不能像Substring OR FullString那样进行集合。
看起来我将能够执行(缺少最后一个字符的子串和缺少第一个字符的子串),但它肯定不会如此糟糕,对吗?
我该怎么做才能使其正常工作呢?
请注意,我的代码是VB.NET,但我想象不到这会是问题。
谢谢,
马克
emailSenderList.get(0)); }return new SearchFilter.SearchFilterCollection(LogicalOperator.Or, emailSenderList.stream() .map(em -> new SearchFilter.IsEqualTo(EmailMessageSchema.From,
em)) .toArray(SearchFilter.IsEqualTo[] :: new) ); - panksy2k