Filtrer les messages de la boîte aux lettres Exchange
Aspose.Email for C++ permet aux développeurs de filtrer les messages dans une boîte aux lettres Exchange en utilisant IEWSClient, MailQuery, et ExchangeQueryBuilder. Vous pouvez filtrer les messages par date, expéditeur, domaine, MessageID, notifications de livraison, et de nombreux autres critères.
Pour récupérer des messages d’un dossier afin de les traiter davantage, le IEWSClient. possède les méthodes suivantes :
- ListMessages() - Récupère tous les messages d’une boîte aux lettres.
- ListMessages() surcharge - Retourne uniquement les messages qui correspondent à des conditions spécifiques. Elle accepte un MailQuery qui définit des règles de filtrage telles que les mots‑clés de l’objet, les intervalles de dates et le filtrage basé sur les adresses.
Filtrer les messages avec IEWSClient
L’exemple de code suivant montre comment interroger et récupérer des e‑mails spécifiques depuis un serveur Exchange en utilisant Exchange Web Services (EWS) avec Aspose.Email pour C++. Il illustre le processus complet de connexion à un serveur Exchange (Office 365 dans ce cas), de construction d’une requête de recherche pour trouver les messages contenant « Newsletter » dans l’objet et arrivés aujourd’hui, d’exécution de la requête sur la boîte de réception, de récupération des messages correspondants, et de gestion appropriée du cycle de vie de la connexion avec gestion des erreurs.
- Se connecter au serveur Exchange en utilisant IEWSClient.
- Créez un MailQuery ou ExchangeQueryBuilder et définir les conditions de filtrage.
- Appelez ListMessages(folderUri, query) pour obtenir les résultats filtrés.
Filtrer les messages selon des critères
L’exemple de code ci‑dessus filtre les messages en fonction de l’objet du courriel et de la date. Vous pouvez également filtrer sur d’autres propriétés. Vous trouverez ci‑dessous quelques exemples de définition des conditions en utilisant MailQuery.
Filtrer par la date d’aujourd’hui
L’exemple de code suivant montre comment construire une requête pour trouver les e‑mails arrivés aujourd’hui.
Filtrer par intervalle de dates
L’exemple de code suivant montre comment construire une requête pour trouver les e‑mails arrivés au cours des 7 derniers jours.
Filtrer par expéditeur spécifique
L’exemple de code suivant montre comment construire une requête pour trouver les e‑mails d’un expéditeur spécifique.
Filtrer par domaine
L’exemple de code suivant montre comment construire une requête pour trouver les e‑mails d’un domaine spécifique.
Filtrer par destinataire
L’exemple de code suivant montre comment construire une requête pour trouver les e‑mails envoyés à un destinataire spécifique.
Filtrer par MessageID
L’exemple de code suivant montre comment construire une requête pour trouver un e‑mail spécifique par son MessageId.
Filtrer les notifications de livraison de courrier
L’exemple de code suivant montre comment construire une requête pour trouver les notifications de livraison de courrier (MDN).
Filtrer par taille du message
L’exemple de code suivant montre comment construire une requête pour trouver les e‑mails supérieurs à une taille spécifique.
Construire des requêtes complexes
Lors de l’utilisation de MailQueryBuilder ou ExchangeQueryBuilder, chaque propriété que vous définissez crée une condition de filtrage. Si ces conditions sont définies dans des instructions séparées, elles sont combinées à l’aide de l’opérateur logique AND, ce qui signifie que toutes les conditions doivent être vérifiées pour qu’un message soit retourné.
Cela permet aux développeurs de créer des filtres précis tels que :
- E‑mails dans une fourchette de dates
- E‑mails d’un domaine spécifique
- E‑mails correspondant à plusieurs critères simultanément
Combiner les requêtes avec AND
L’utilisation séquentielle de plusieurs propriétés du constructeur crée automatiquement une opération AND.
L’exemple suivant récupère les messages qui :
- Provient d’un domaine spécifique
- Arrivé avant aujourd’hui
- Arrivé au cours des sept derniers jours
Combiner les requêtes avec OR
Pour faire correspondre les messages qui remplissent l’une ou l’autre des deux conditions, utilisez la méthode Or().
L’exemple suivant récupère les messages qui :
- Contiennent « test » dans l’objet, ou
- Envoyés par « noreply@host.com »
Filtrage d’e-mails sensible à la casse
Vous pouvez appliquer un filtrage sensible ou insensible à la casse lors de l’interrogation des messages d’une boîte aux lettres Exchange. Pour contrôler ce comportement, utilisez le drapeau IgnoreCase disponible dans les méthodes de filtrage. Passer true active la correspondance insensible à la casse.
L’exemple ci‑dessous filtre les messages qui :
- Contiennent le mot « Newsletter » dans l’objet (insensible à la casse)
- Arrivé aujourd’hui
Pagination dans le filtrage des messages
Lors du travail avec de grandes boîtes aux lettres Exchange, la pagination vous permet de récupérer les messages par lots plus petits et gérables. Le ListMessagesByPage méthode de IEWSClient renvoie les résultats page par page en fonction d’une taille de page spécifiée et des critères de requête.
L’exemple ci‑dessous montre comment :
- Construisez un filtre en utilisant MailQueryBuilder.
- Récupérez les résultats par pages.
- Itérez sur toutes les pages jusqu’à la dernière.
- Comptez le nombre total de messages correspondants.