Filtrare le email dal server di posta
Filtrare i messaggi per mittente, destinatario o data
Il Pop3Client classe, descritta in Connessione al server POP3, fornisce il ListMessages() metodo che ottiene tutti i messaggi da una casella di posta. Per ottenere solo i messaggi che corrispondono a una condizione, usa il sovraccaricato ListMessages() metodo che prende MailQuery come argomento. Il MailQuery la classe fornisce varie proprietà per specificare le condizioni della query, ad esempio data, oggetto, mittente, destinatario e così via. Il MailQueryBuilder la classe è usata per costruire l’espressione di ricerca. Prima, tutte le condizioni e i vincoli sono impostati e poi MailQuery viene riempito con la query sviluppata da MailQueryBuilder. Il MailQuery l’oggetto classe è usato da Pop3Client per estrarre le informazioni filtrate dal server. Questo articolo mostra come filtrare i messaggi email da una casella di posta. Il primo esempio illustra come filtrare i messaggi per data e oggetto. Mostriamo anche come filtrare su altri criteri e come costruire query più complesse. Viene inoltre mostrata l’applicazione del filtro Data e Ora per recuperare le email specifiche dalla casella di posta. Inoltre, viene mostrato come applicare il filtraggio sensibile al maiuscolo/minuscolo.
Filtrare i messaggi dalla casella di posta
Per filtrare i messaggi da una casella di posta:
- Connettersi al server POP3.
- Crea un’istanza di MailQuery e impostare le proprietà desiderate.
- Chiama il Pop3Client.ListMessages(MailQuery query) 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 POP3 e ottenere i messaggi arrivati oggi e che contengono la parola "newsletter" nell’oggetto.
Recuperare i messaggi per criteri specifici
I campioni di codice sopra mostra come è possibile filtrare i messaggi in base all’oggetto dell’email e alla data. Possiamo utilizzare altre proprietà per impostare altre condizioni supportate. Di seguito alcuni esempi di impostazione delle condizioni utilizzando MailQuery.
I frammenti di codice seguenti mostrano come filtrare le email su altri criteri:
- Trova email consegnate oggi.
- Trova email ricevute entro un intervallo.
- Trova email da un mittente specifico.
- Trova email inviate da un dominio specifico.
- Trova email inviate a un destinatario specifico.
Data di oggi
Il seguente frammento di codice mostra come trovare email consegnate oggi.
Intervallo di date
Il seguente frammento di codice mostra come trovare email ricevute entro un intervallo.
Mittente specifico
Il seguente frammento di codice mostra come trovare email da un mittente specifico.
Dominio specifico
Il seguente frammento di codice mostra come trovare email inviate da un dominio specifico.
Destinatario specifico
Il seguente frammento di codice mostra come trovare email inviate a un destinatario specifico.
Costruire query complesse
Se diversi MailQueryBuilder le proprietà sono impostate in istruzioni separate, quindi tutte le condizioni verrebbero soddisfatte. Ad esempio, se desideriamo ottenere messaggi tra un intervallo di date e da un host specifico, dobbiamo scrivere tre istruzioni.
Combina le query con AND
Il seguente frammento di codice mostra come combinare query con AND.
Combina le query con OR
MailQueryBuilder fornisce il Or() metodo che prende due MailQuery istanze come parametri. Ottiene i messaggi che corrispondono a una delle due condizioni specificate. Il seguente snippet di codice mostra come filtrare i messaggi che hanno “test” nell’oggetto oppure "noreply@host.com" come mittente. Il seguente snippet di codice mostra come combinare le query con OR.
Filtri sensibili al maiuscolo/minuscolo
L’API fornisce anche la capacità di filtrare le email dalla casella di posta basandosi su criteri sensibili al maiuscolo/minuscolo. I metodi seguenti offrono la possibilità di cercare email specificando il flag case sensitive.
- Method Aspose.Email.StringComparisonField.Contains(string value, bool ignoreCase)
- Method Aspose.Email.StringComparisonField.Equals(string value, bool ignoreCase)
- Method Aspose.Email.StringComparisonField.NotContains(string value, bool ignoreCase)
- Method Aspose.Email.StringComparisonField.NotEquals(string value, bool ignoreCase)