EWS Managed API find items with ItemID
Asked Answered
M

2

18

I am trying to find items from deleted items folder given the items unique 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);

This code returns an exception saying:

Validation failed.
Parameter name: searchFilter

The same code works if I search for a message with Subject.

Melesa answered 13/12, 2013 at 15:45 Comment(0)
I
40

You don't need to use FindItems if you already know the ItemId

EmailMessage email = EmailMessage.Bind(service, new ItemId(StringItemId));
Ipsambul answered 18/5, 2015 at 16:13 Comment(2)
Do you know of any way to ensure the ID exists before, so that the Bind method will not except on an item that no longer exists?Darladarlan
This is great! Helped me figure out folder names as well in PoweShell. [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service, [Microsoft.Exchange.WebServices.Data.FolderId]("*************************"))Stravinsky
J
6

You cannot search on a ComplexProperty such as the ItemId. I'm assuming that Item.Bind won't work due to the item being moved, which changed the ItemId?

If that's the case, then you'll need to use a SearchFilter on another property. If these are Items that you created via EWS, you could attach a unique Extended Property to each and use that if you need to search for one.

Jett answered 17/12, 2013 at 23:2 Comment(2)
Yes the change of ItemIDs proved fatal and I realized that it is not a reliable mechanism for correlating items that were moved to some other folder like Inbox to Deleted items.Melesa
The extended property will be blatenly copied on item copy in Outlook, making the unique ID not-so-unique anymore.Darladarlan

© 2022 - 2024 — McMap. All rights reserved.