Envoyer, lire et organiser les messages sur le serveur Exchange

Récupérer les informations de la boîte aux lettres Exchange avec EWS

Aspose.Email vous permet de récupérer les détails de la boîte aux lettres depuis Microsoft Exchange en utilisant le IEWSClient classe. En appelant le GetMailboxInfo() méthode, le client renvoie un ExchangeMailboxInfo objet contenant des URI de dossiers utiles tels que Mailbox, Inbox, Drafts et Sent Items.

Pour se connecter au serveur Exchange avec Exchange Web Services (EWS), utilisez le IEWSClient classe. Cette classe utilise EWS pour se connecter et gérer les éléments sur un serveur Exchange.

L’extrait de code suivant montre comment obtenir les informations de la boîte aux lettres en utilisant les services web Exchange.

Envoyer des messages électroniques via EWS

Vous pouvez envoyer des e‑mails via Exchange en appelant le IEWSClient->Send() méthode. Elle prend un MailMessage objet et le soumet directement via le serveur en utilisant EWS.

L’exemple de code suivant montre comment envoyer un message e‑mail HTML via un serveur Exchange en utilisant Exchange Web Services (EWS) avec Aspose.Email pour C++. Il illustre le processus complet d’établissement d’une connexion à Exchange, de création d’un message avec expéditeur, destinataire, objet et contenu HTML, puis d’envoi du message en utilisant la méthode Send du client EWS.

Lire les e‑mails depuis la boîte aux lettres d’un autre utilisateur

Certaines comptes sur les serveurs Exchange ont le droit d’accéder à plusieurs boîtes aux lettres, et certains utilisateurs possèdent plusieurs comptes e‑mail sur le même serveur Exchange. Dans les deux cas, les utilisateurs peuvent accéder aux boîtes aux lettres d’autres utilisateurs avec Aspose.Email. L’API fournit un mécanisme permettant d’accéder aux dossiers et aux e‑mails d’autres boîtes aux lettres en utilisant le  IEWSClient classe. Cette fonctionnalité peut être obtenue en utilisant la version surchargée de GetMailboxInfo() méthode en fournissant l’adresse e‑mail de l’utilisateur comme paramètre.

L’extrait de code suivant vous montre comment lire les e‑mails en utilisant le IEWSClient classe.

Lister les messages avec EWS

Aspose.Email pour C++ vous permet de récupérer les métadonnées des messages des boîtes aux lettres Exchange Server via le IEWSClient. En utilisant la base EWS ListMessages API, vous pouvez lister les messages de n’importe quel dossier, parcourir les métadonnées des messages et mettre en œuvre la pagination pour les grosses boîtes aux lettres.

Lister les messages de la boîte de réception

Utiliser ListMessages pour récupérer les informations de base d’un message telles que l’objet, l’expéditeur, les destinataires et l’ID du message depuis la boîte de réception ou tout autre dossier.

L’exemple de code suivant montre comment lister et afficher les informations de base pour tous les messages d’un serveur Exchange.

  1. Créez une instance de IEWSClient.
  2. Appelez ListMessages avec l’URI du dossier cible.
  3. Parcourir ExchangeMessageInfoCollection.

Lister les messages de n’importe quel dossier

ListMessages accepte tout URI de dossier valide, vous permettant de lister les éléments des éléments supprimés, des brouillons, des éléments envoyés ou des dossiers personnalisés. Utilisez le IEWSClient->get_MailboxInfo->xxxFolderUri propriété pour obtenir l’URI de différents dossiers.

L’exemple de code suivant montre comment accéder à différents URI de dossiers Exchange Server et récupérer les messages d’un dossier spécifié.

Pagination dans la liste des messages

Pour les grosses boîtes aux lettres, utilisez ListMessagesByPage pour charger les messages en blocs plus petits.

L’exemple de code suivant montre comment implémenter la pagination pour récupérer un grand nombre de messages depuis la boîte de réception d’un serveur Exchange.

  1. Tout d’abord, il crée plusieurs messages de test sur le serveur.
  2. Ensuite, utilise le ListMessagesByPage méthode pour récupérer les messages en lots plus petits (5 messages par page dans ce cas), en itérant à travers toutes les pages jusqu’à atteindre la dernière page.
  3. Enfin, le code vérifie que tous les messages ont été récupérés avec succès en comptant le nombre total d’éléments sur toutes les pages.

Obtenir les informations de type de message

Utiliser ExchangeMessageInfo->MessageInfoType pour déterminer le type de message Exchange sous‑jacent (ex. courriel, demande de réunion, etc.).

L’exemple de code suivant montre comment se connecter à un serveur Exchange et récupérer les informations de type de message depuis le dossier Éléments supprimés.

Enregistrer les messages en utilisant les services Web Exchange (EWS)

Aspose.Email vous permet de récupérer des messages depuis une boîte aux lettres Exchange Server et de les enregistrer dans plusieurs formats, tels que EML, flux mémoire et MSG. Les exemples ci‑dessous montrent comment extraire les informations d’un message et stocker les messages en utilisant le IEWSClient API.

Enregistrer les messages au format EML

Pour enregistrer les messages de la boîte aux lettres au format EML :

  1. Créez un IEWSClient instance en utilisant des identifiants valides.
  2. Appelez ListMessages() pour récupérer un ExchangeMessagesInfoCollection.
  3. Parcourir la collection pour accéder à l’URI unique de chaque message.
  4. Appelez SaveMessage() pour stocker chaque message sur le disque au format EML.

L’exemple de code suivant montre comment enregistrer les messages électroniques d’une boîte de réception Exchange Server en tant que fichiers EML individuels localement à l’aide d’Aspose.Email pour C++.

Enregistrer les messages dans un flux mémoire

Au lieu d’écrire sur le disque, vous pouvez enregistrer les messages dans un flux mémoire—utile pour stocker les e‑mails dans une base de données ou les traiter en mémoire.

L’exemple de code suivant montre comment enregistrer les messages électroniques d’une boîte de réception Exchange Server dans des flux mémoire.

Enregistrer les messages au format MSG

Pour enregistrer les messages au format MSG :

  1. Récupérez le message à l’aide de FetchMessage(), qui renvoie un MailMessage.
  2. Appelez MailMessage::Save() avec les options d’enregistrement MSG.

L’exemple de code suivant montre comment récupérer et enregistrer les e‑mails d’une boîte de réception Exchange Server sous forme de fichiers au format Outlook MSG.

Récupérer les détails du message par son URI

Lorsque seule l’URI unique d’un message est disponible, vous pouvez toujours récupérer l’ensemble ExchangeMessageInfo objets. Le IEWSClient::ListMessages() la surcharge accepte une liste d’IDs de messages (URIs) et renvoie un ExchangeMessageInfoCollection. Utilisez cette fonctionnalité lorsque vous stockez ou recevez des URI de messages à l’extérieur et avez besoin de charger les métadonnées (objet, expéditeur, taille, etc.) sans récupérer les messages complets.

L’exemple de code suivant montre comment créer plusieurs messages e‑mail sur un serveur Exchange, puis récupérer leurs informations de message à l’aide d’identifiants uniques.

Récupérer le contenu complet du message

ListMessages() renvoie les informations résumées (objet, expéditeur, IDs). Pour charger le contenu complet du message — corps, en-têtes, pièces jointes — utilisez FetchMessage().

L’exemple de code suivant montre comment récupérer les messages complets depuis la boîte de réception d’un serveur Exchange et extraire les informations des pièces jointes :

  1. Créez un IEWSClient instance.
  2. Appelez ListMessages() pour obtenir les métadonnées de base du message.
  3. Extraire l’UniqueUri de chaque message.
  4. Appelez FetchMessage() pour récupérer les détails complets du message.

Récupérer la taille du message (sans télécharger le message complet)

Aspose.Email fournit les informations de taille du message sans récupérer le courriel complet, via le ExchangeMessageInfo::Size propriété.

Ceci est utile pour :

  • statistiques de boîte aux lettres
  • calculs de quota
  • filtrer les gros messages avant le téléchargement

L’exemple de code suivant montre comment lister et afficher les métadonnées des messages, y compris la taille, depuis une boîte de réception Exchange Server.

Télécharger les e‑mails depuis les dossiers publics Exchange

Les dossiers publics Exchange permettent le stockage de messages partagés entre utilisateurs.

Aspose.Email IEWSClient vous permet d’effectuer les opérations suivantes avec ces dossiers et les messages qu’ils contiennent :

  • Lister les dossiers publics
  • Parcourir les sous‑dossiers de manière récursive
  • Télécharger les messages et les enregistrer (par ex., en fichiers MSG)

Remarque : Microsoft Exchange Server 2007 ou ultérieur est requis, les versions antérieures ne supportant pas EWS.

L’exemple de code suivant montre comment télécharger les messages de tous les dossiers publics et leurs sous‑dossiers sur un serveur Exchange de manière récursive, puis les enregistrer localement sous forme de fichiers Outlook MSG.

Déplacer les messages entre dossiers Exchange

Vous pouvez déplacer des messages d’un dossier Exchange à un autre en utilisant le IEWSClient::MoveItem méthode. Elle nécessite :

  • L’URI unique du message à déplacer.
  • L’URI unique du dossier de destination.

L’exemple de code suivant montre comment filtrer et déplacer des e‑mails spécifiques depuis la boîte de réception d’un serveur Exchange vers un autre dossier selon des critères de contenu.

  1. Se connecter au serveur Exchange en utilisant les identifiants EWS.
  2. Obtenir les informations de la boîte aux lettres (URI des dossiers).
  3. Lister tous les messages de la boîte de réception.
  4. Parcourir chaque message.
  5. Vérifier si l’objet contient « process this message ».
  6. Déplacer les messages correspondants vers le dossier Éléments supprimés.
  7. Afficher une confirmation pour chaque message déplacé.

Supprimer des messages d’un dossier Exchange

Vous pouvez supprimer des e‑mails d’un dossier à l’aide du  IEWSClient->DeleteMessage méthode. Elle prend l’URI unique du message comme paramètre.

L’exemple de code suivant montre comment filtrer et supprimer des e‑mails spécifiques depuis la boîte de réception d’un serveur Exchange en fonction du sujet.

  1. Parcourir les messages de la boîte de réception.
  2. Traitez les messages selon certains critères (dans cet exemple, nous recherchons un mot‑clé dans l’objet du message).
  3. Supprimer les messages correspondants.

Copier les messages vers un autre dossier Exchange

Utiliser IEWSClient::CopyItem pour dupliquer un message dans un autre dossier. La version surchargée renvoie l’URI de la copie nouvellement créée.

L’exemple de code suivant montre comment créer un message e‑mail sur un serveur Exchange et le copier dans un autre dossier.