Exchange Web Services: Finding emails sent to a recipient
exchange-server, exchangewebservices
Solution
I didn't find a way to use a SearchFilter to find emails based on recipient email address.
It is possible using a different overload of ExchangeService.FindItems which takes a querystring.
Finding emails where an address is in the To or Cc fields
var contactEmailAddress = "some@email.com";
var querystring = string.Format("Participants:={0}", contactEmailAddress);
service.FindItems(WellKnownFolderName.Inbox, queryString, view);
Finding emails where an address is in the From, To or Cc fields
var contactEmailAddress = "some@email.com";
var querystring = string.Format("(From:={0} OR Participants:={0})", contactEmailAddress);
service.FindItems(WellKnownFolderName.Inbox, queryString, view);
I think this feature requires Exchange 2010.
Some additional resources on query syntax:
- QueryString (QueryStringType) [MSDN]
- Using Exchange Search and AQS with EWS on Exchange 2010
Problem
I'm using Exchange Web Services to connect to a mailbox and look for messages matching certain criteria, using FindItems with a SearchFilter. I can get emails in a mailbox filtering on 'from' email address like this: ``` var service = new ExchangeService(ExchangeVersion.Exchange2010_SP1) { TraceEnabled = true, Credentials = new WebCredentials(username, password) }; var filter = new SearchFilter.ContainsSubstring(EmailMessageSchema.From, "some@email.com"); service.FindItems(WellKnownFolderName.Inbox, filter, new ItemView(50)) ``` And I can filter on the `DisplayTo` property like this: ``` var filter = new SearchFilter.ContainsSubstring(EmailMessageSchema.DisplayTo, "display name"); ``` But as far as I can tell that only searches the recipient's display name. I want to search on an email address or domain name. This doesn't return results when I would expect it to: ``` var filter = new SearchFilter.ContainsSubstring(EmailMessageSchema.ToRecipients, "some@email.com"); ``` Is it possible to find all emails where the recipients list contains a specified email address?