我正在尝试从已删除项目文件夹中找到项目唯一ID
ItemId id = new ItemId("zTK6edxaI9sb6AAAQKqWHAAA");
SearchFilter.IsEqualTo filter = new SearchFilter.IsEqualTo(ItemSchema.Id, id);
ItemView view = new ItemView(10);
view.PropertySet = new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.Subject);
FindItemsResults<Item> results = _ExchangeService.FindItems(WellKnownFolderName.DeletedItems, filter, view);
Console.WriteLine(results.TotalCount);
此代码返回一个例外说明:
Validation failed.
Parameter name: searchFilter
如果我搜索带主题的邮件,则相同的代码可用。
答案 0 :(得分:34)
如果您已经知道ItemId
,则不需要使用FindItemsEmailMessage email = EmailMessage.Bind(service, new ItemId(StringItemId));
答案 1 :(得分:6)
您无法搜索ComplexIperty,例如ItemId。我假设Item.Bind因项目被移动而无效,这改变了ItemId?
如果是这种情况,那么您需要在另一个属性上使用SearchFilter。如果这些是您通过EWS创建的项目,则可以为每个项目附加一个唯一的扩展属性,并在需要搜索时使用该属性。