Filtra messaggi dalla casella di posta Exchange
Aspose.Email for C++ consente agli sviluppatori di filtrare i messaggi in una casella di posta Exchange utilizzando IEWSClient, MailQuery, e ExchangeQueryBuilder. È possibile filtrare i messaggi per data, mittente, dominio, MessageID, notifiche di consegna e molti altri criteri.
Per recuperare i messaggi da una cartella per ulteriori elaborazioni, il IEWSClient. ha i seguenti metodi:
- ListMessages() - Ottiene tutti i messaggi da una casella di posta.
- ListMessages() sovraccarico - Restituisce solo i messaggi che corrispondono a condizioni specifiche. Accetta un MailQuery che definisce regole di filtraggio come parole chiave dell’oggetto, intervalli di date e filtraggio basato sugli indirizzi.
Filtra i Messaggi con IEWSClient
Il seguente esempio di codice dimostra come interrogare e recuperare email specifiche da un Exchange Server usando Exchange Web Services (EWS) con Aspose.Email per C++. Mostra l’intero processo di connessione a un server Exchange (Office 365 in questo caso), costruzione di una query di ricerca per trovare i messaggi con "Newsletter" nell’oggetto che sono arrivati oggi, esecuzione della query sulla casella di posta in arrivo, recupero dei messaggi corrispondenti e gestione corretta del ciclo di vita della connessione con gestione degli errori.
- Connetti al server Exchange usando IEWSClient.
- Crea un MailQuery oppure ExchangeQueryBuilder e definire le condizioni di filtraggio.
- Chiama ListMessages(folderUri, query) per ottenere i risultati filtrati.
Filtra messaggi in base a criteri
L’esempio di codice sopra filtra i messaggi in base all’oggetto dell’email e alla data. È possibile filtrare anche su altre proprietà. Di seguito alcuni esempi di impostazione delle condizioni utilizzando MailQuery.
Filtra per la data di oggi
Il seguente esempio di codice dimostra come costruire una query per trovare le email arrivate oggi.
Filtra per intervallo di date
Il seguente esempio di codice dimostra come costruire una query per trovare le email arrivate negli ultimi 7 giorni.
Filtra per mittente specifico
Il seguente esempio di codice dimostra come costruire una query per trovare le email da un mittente specifico.
Filtra per dominio
Il seguente esempio di codice dimostra come costruire una query per trovare le email da un dominio specifico.
Filtra per destinatario
Il seguente esempio di codice dimostra come costruire una query per trovare le email inviate a un destinatario specifico.
Filtra per MessageID
Il seguente esempio di codice dimostra come costruire una query per trovare una specifica email per il suo MessageId.
Filtra le Notifiche di Consegna della Posta
Il seguente esempio di codice dimostra come costruire una query per trovare le Notifiche di Consegna della Posta (MDN).
Filtra per dimensione del messaggio
Il seguente esempio di codice dimostra come costruire una query per trovare le email più grandi di una dimensione specifica.
Costruire query complesse
Quando si utilizza MailQueryBuilder oppure ExchangeQueryBuilder, ogni proprietà che imposti crea una condizione di filtraggio. Se queste condizioni sono definite in istruzioni separate, vengono combinate usando l’operatore logico AND, il che significa che tutte le condizioni devono corrispondere affinché un messaggio venga restituito.
Ciò consente agli sviluppatori di costruire filtri precisi come:
- Email all’interno di un intervallo di date
- Email da un dominio specifico
- Email che corrispondono a più criteri simultaneamente
Combina le query con AND
Utilizzare più proprietà del builder in sequenza crea automaticamente un’operazione AND.
Il seguente esempio recupera i messaggi che:
- Provengono da un dominio specifico
- Arrivate prima di oggi
- Arrivate negli ultimi sette giorni
Combina le query con OR
Per far corrispondere i messaggi che soddisfano una delle due condizioni, usa il metodo Or().
Il seguente esempio ottiene i messaggi che:
- Contengono “test” nell’oggetto, o
- Sono state inviate da “noreply@host.com”
Filtraggio Email Sensibile al Maiuscolo/Minuscolo
È possibile applicare filtri sensibili o non sensibili al maiuscolo/minuscolo quando si interrogano i messaggi da una casella di posta Exchange. Per controllare questo comportamento, usa il flag IgnoreCase disponibile nei metodi di filtraggio. Impostare true abilita il confronto non sensibile al maiuscolo/minuscolo.
L’esempio qui sotto filtra i messaggi che:
- Contengono la parola "Newsletter" nell’oggetto (non sensibile al maiuscolo/minuscolo)
- Arrivate oggi
Paginazione nel filtraggio dei messaggi
Quando si lavora con grandi caselle di posta Exchange, la paginazione consente di recuperare i messaggi in batch più piccoli e gestibili. Il ListMessagesByPage metodo di IEWSClient restituisce i risultati pagina per pagina in base a una dimensione di pagina specificata e ai criteri della query.
L’esempio qui sotto dimostra come:
- Crea un filtro usando MailQueryBuilder.
- Recupera i risultati a pagine.
- Itera attraverso tutte le pagine fino all’ultima.
- Conta il numero totale di messaggi corrispondenti.