Filtra e ordina i messaggi nella casella di posta Exchange usando EWS
Filtra e ordina i messaggi usando EWS
Il IEWSClient l’interfaccia fornisce il ListMessages() metodo che ottiene tutti i messaggi da una casella di posta. Per ottenere solo i messaggi che corrispondono a una certa condizione, usa il sovraccaricato ListMessages() metodo che prende il MailQuery classe come argomento. Il MailQuery la classe fornisce varie proprietà per specificare le condizioni, ad esempio data, oggetto, mittente e destinatario. Inoltre, l’API consente di applicare filtri sensibili al maiuscolo/minuscolo per recuperare le email dalla casella di posta.
Filtra i messaggi per criteri
Per ottenere messaggi filtrati da una casella:
- Connetti al server Exchange.
- Crea un’istanza di MailQuery e impostare le proprietà desiderate.
- Chiama il IEWSClient.ListMessages() metodo e passa il MailQuery nei parametri per ottenere solo i messaggi filtrati.
Il seguente frammento di codice mostra come connettersi a una casella di posta IMAP e ottenere i messaggi che contengono la stringa "Newsletter" nell’oggetto e sono stati inviati oggi.
Per data odierna
Il seguente frammento di codice mostra come filtrare tutte le email sulla base della data di oggi.
Per intervallo di date
Il seguente frammento di codice mostra come filtrare tutte le email in base all’intervallo di date.
Per mittente
Il seguente frammento di codice mostra come filtrare tutte le email in base a un mittente specifico.
Per dominio
Il seguente frammento di codice mostra come filtrare tutte le email in base a un dominio specifico.
Per destinatario
Il seguente frammento di codice mostra come filtrare tutte le email in base a un destinatario specifico.
Per ID messaggio
Il seguente frammento di codice mostra come filtrare tutte le email in base al MessageID.
Per notifiche di consegna della posta
Il seguente frammento di codice mostra come filtrare tutte le email in base a tutte le notifiche di consegna della posta.
Per dimensione del messaggio
Costruire Query Complesse
Se diversi MailQueryBuilder le proprietà sono impostate in una dichiarazione separata, tutte le condizioni sono soddisfatte. Ad esempio, per ottenere un messaggio in un intervallo di date specifico e da un host particolare, scrivi tre istruzioni:
Combinare Query con AND
Il seguente frammento di codice mostra come combinare query con AND.
Combinare Query con OR
MailQueryBuilder fornisce il Or() metodo che prende due MailQuery istanze come parametri. Recupera i messaggi che corrispondono a una delle due condizioni specificate. L’esempio seguente filtra i messaggi che hanno la parola “test” nell’oggetto o “noreply@host.com” come mittente. Il seguente frammento di codice mostra come combinare le query con OR.
Filtraggio Email Sensibile al Maiuscolo/Minuscolo
Le email possono essere filtrate in base a maiuscole/minuscole specificando il flag IgnoreCase nei criteri di filtro come mostrato nel seguente frammento di codice.
Filtra i Messaggi con Supporto alla Paginazione
Ordina i messaggi filtrati in ordine ascendente/decrescente
Il filtraggio delle email può essere supportato con l’ordinamento dei messaggi in ordine ascendente/decrescente. In questo caso, OrderBy Il metodo è usato per specificare l’ordine in cui i risultati di una ricerca email vengono ordinati usando la classe MailQueryBuilder. Questo metodo consente di definire i criteri di ordinamento per una query di ricerca, specificando se i risultati devono essere ordinati in modo crescente o decrescente basandosi su una determinata proprietà.
Il metodo accetta il parametro ascending, che specifica l’ordine di ordinamento per la proprietà indicata. Se il parametro ascending è true, significa che i risultati della ricerca devono essere ordinati in ordine crescente. Al contrario, se il parametro ascending è false, i risultati devono essere ordinati in ordine decrescente.
MailQueryBuilder builder = new MailQueryBuilder();
builder.Subject.Contains("Report");
builder.InternalDate.Since(new DateTime(2020, 1, 1));
builder.Subject.OrderBy(true); // sort the subject ascending
builder.InternalDate.OrderBy(false); // sort the date descending
MailQuery query = builder.GetQuery();
// Get list of messages
ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
Nello snippet di codice sopra, il metodo OrderBy viene applicato due volte, una per l’oggetto e una per la data delle email. Come risultato dell’esecuzione del metodo ListMessages con la richiesta passata, otterremo un elenco di messaggi il cui oggetto contiene la parola "Report" e che sono stati ricevuti nella data specificata o successiva. Allo stesso tempo, i risultati saranno ordinati per oggetto in ordine crescente. Ciò significa che i messaggi saranno ordinati alfabeticamente da A a Z, in base al loro oggetto. Inoltre, i risultati saranno ordinati per data in ordine decrescente. Ciò significa che i messaggi saranno elencati dal più recente al più vecchio.
Filtra i messaggi usando AQS
Con Aspose.Email per .NET, gli utenti possono sfruttare le potenti capacità della Sintassi di Query Avanzata (AQS) per filtrare i messaggi direttamente da una casella Exchange. AQS fornisce un metodo robusto e intuitivo per costruire query che possono mirare con precisione le email basandosi su criteri specifici come data, mittente e oggetto. Per approfondimenti più dettagliati sulla sua integrazione nei tuoi processi di filtraggio delle email e esempi di codice completi su come implementare il filtro dei messaggi usando AQS con Aspose.Email per .NET, fai riferimento al Filtra i messaggi con AQS da mailbox Exchange articolo.