Filtra i messaggi con AQS da mailbox Exchange
Sintassi di query avanzata (AQS) è la sintassi di query utilizzata da Exchange come alternativa ai filtri di ricerca per esprimere i criteri di ricerca. AQS è un modo più flessibile per eseguire ricerche e fornire risultati di ricerca per tutti i campi comunemente usati sugli elementi. AQS è anche intuitivo, facile da capire e rapido da padroneggiare. Utilizzare AQS è adatto per trovare messaggi per allegati e destinatari.
Creazione di query di ricerca AQS
Puoi creare una query di ricerca con AQS tramite:
- ExchangeAdvancedSyntaxQueryBuilder, che rappresenta il costruttore di espressioni di ricerca basato su Advanced Query Syntax (AQS). oppure
- ExchangeAdvancedSyntaxMailQuery, che crea una stringa AQS direttamente basata sulle parole chiave supportate.
Utilizzo del Query Builder
Per creare una query di ricerca con ExchangeAdvancedSyntaxQueryBuilder è necessario:
-
crea un’istanza di IEWSClient usando GetEWSClient metodo
-
crea un’istanza di ExchangeAdvancedSyntaxQueryBuilder e imposta le proprietà necessarie per costruire una query.
-
chiamata ListMessages oppure ListItems metodo e passa MailQuery istanza, restituita da GetQuery metodo, come uno dei suoi parametri.
Il codice di esempio sotto mostra come eseguire i passaggi sopra descritti:
using (var client = EWSClient.GetEWSClient(...))
{
var advancedBuilder = new ExchangeAdvancedSyntaxQueryBuilder();
advancedBuilder.From.Equals("Jim Martin");
advancedBuilder.Subject.Contains("report");
advancedBuilder.HasAttachment.Equals(true);
var messages = client.ListMessages(client.MailboxInfo.InboxUri, advancedBuilder.GetQuery());
}
Query AQS Dirette
Per creare una query di ricerca con ExchangeAdvancedSyntaxMailQuery è necessario:
-
crea un’istanza di IEWSClient usando GetEWSClient metodo
-
crea un’istanza di ExchangeAdvancedSyntaxMailQuery e passa una stringa AQS. Vedi il descrizione della sintassi.
-
chiamata ListMessages oppure ListItems metodo e passa ExchangeAdvancedSyntaxMailQuery istanza come uno dei suoi parametri.
Il codice di esempio sotto mostra come eseguire i passaggi sopra descritti:
using (var client = EWSClient.GetEWSClient(...))
{
ExchangeAdvancedSyntaxMailQuery query = new ExchangeAdvancedSyntaxMailQuery("subject:(product AND report)");
ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
}