Search code examples
javac#exchangewebservicesewsjavaapi

Exchange Web Service find EmailMessage by "Message-ID" header


I'm using the Java EWS library and try to reply to some messages. The main question is - how to find EmailMessage in folder or in mailbox if I only know value of "Message-ID" header of my message.

I try to do something like this:

ExtendedPropertyDefinition p = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.InternetHeaders, "Message-ID", MapiPropertyType.String)

myfolder.findItems(new SearchFilter.IsEqualTo(p, "<1031208507.471.1446200157453.JavaMail.test>"), new ItemView(1))

But result set is aleays empty! Can you help me? Some Java or C# solutions?


Solution

  • You could go for the regular (not extended) property InternetMessageId instead:

    ItemView view = new ItemView(1);
    
    String searchstring = "<1031208507.471.1446200157453.JavaMail.test>";
    SearchFilter.IsEqualTo filter = 
       new SearchFilter.IsEqualTo(EmailMessageSchema.InternetMessageId, searchstring);
    
    FindItemsResults<Item> findResults = 
       service.FindItems(WellKnownFolderName.Inbox, filter, view);