Search Emails on Exchange Server
With GemBox.Email you can search for specific messages on the Exchange Server. To search for specific emails, you can use the ExchangeClient.SearchMessages
or ExchangeClient.SearchMessagesById
methods.
You can do this search using the Advanced Query Syntax (AQS). You can read more about these queries on Creating a query string.
The following example shows how you can search for messages that match various criteria.
using System;
using GemBox.Email;
using GemBox.Email.Exchange;
class Program
{
static void Main()
{
// If using the Professional version, put your serial key below.
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
var exchangeClient = new ExchangeClient("<HOST> (e.g. https://outlook.office365.com/EWS/Exchange.asmx)");
exchangeClient.Authenticate("<USERNAME>", "<PASSWORD>");
// Search for messages in "Inbox" folder whose subject contains "Some subject" text.
var messageInfos = exchangeClient.SearchMessages("Inbox", "subject:\"Some subject\"");
Console.WriteLine("Number of messages with \"Some subject\" in subject:");
Console.WriteLine(messageInfos.Count);
// Search for messages in "Inbox" folder that were received this year.
messageInfos = exchangeClient.SearchMessages("Inbox", "received:\"this year\"");
Console.WriteLine("Number of messages received this year:");
Console.WriteLine(messageInfos.Count);
}
}
Imports System
Imports GemBox.Email
Imports GemBox.Email.Exchange
Module Program
Sub Main()
' If using the Professional version, put your serial key below.
ComponentInfo.SetLicense("FREE-LIMITED-KEY")
Dim exchangeClient As New ExchangeClient("<HOST> (e.g. https://outlook.office365.com/EWS/Exchange.asmx)")
exchangeClient.Authenticate("<USERNAME>", "<PASSWORD>")
' Search for messages in "Inbox" folder whose subject contains "Some subject" text.
Dim messageInfos = exchangeClient.SearchMessages("Inbox", "subject:""Some subject""")
Console.WriteLine("Number of messages with ""Some subject"" in subject:")
Console.WriteLine(messageInfos.Count)
' Search for messages in "Inbox" folder that were received this year.
messageInfos = exchangeClient.SearchMessages("Inbox", "received:""this year""")
Console.WriteLine("Number of messages received this year:")
Console.WriteLine(messageInfos.Count)
End Sub
End Module

See also
Next steps
Published: April 11, 2023 | Modified: April 21, 2023 | Author: Mario Zorica