Travailler avec les pièces jointes du message

Analyse et enregistrement des pièces jointes

Les fichiers de messages Outlook peuvent contenir une ou plusieurs pièces jointes. Aspose.Email permet aux développeurs de parcourir les pièces jointes d’un fichier MSG et de les enregistrer sur le disque. Ce sujet décrit le processus. Il décrit également comment intégrer une pièce jointe.

Aspose.Email MapiMessage classe est utilisée pour charger un fichier MSG depuis le disque et expose le getAttachments() méthode qui référence le MapiAttachment collection d’objets associée au fichier MSG. La MapiAttachment l’objet expose davantage de méthodes qui effectuent des actions sur la pièce jointe.

Pour enregistrer les pièces jointes d’un fichier MSG sur le disque avec le nom et l’extension d’origine :

  1. Créez une instance de la MapiMessage classe pour charger un fichier MSG à l’aide de Load() méthode statique.
  2. Appelez le MapiRecipient classe getAttachments() méthode pour obtenir une référence à la collection de MapiAttachment objets associés au fichier MSG.
  3. Parcourez le MapiAttachmentCollection pour afficher le contenu concernant chaque MapiAttachment objet via ses méthodes publiques.
  4. Appelez le MapiAttachment classe save() méthode pour enregistrer la pièce jointe sur le disque.  

Intégrer des messages en tant que pièces jointes

Un message Microsoft Outlook peut contenir d’autres messages Microsoft Outlook en pièces jointes, soit sous forme de messages normaux, décrits ci‑dessus, soit sous forme de messages intégrés. Le MapiAttachmentCollection fournit des membres surchargés de la méthode add pour créer des messages Outlook avec les deux types de pièces jointes. Les fichiers MSG Outlook incorporés dans un fichier MSG contiennent un PR_ATTACH_METHOD avec la valeur 5.

Lire un message intégré depuis une pièce jointe

Insertion et remplacement de pièces jointes MSG

L’API Aspose.Email offre la capacité d’insérer des pièces jointes à un indice spécifique dans le message parent. Elle offre également la possibilité de remplacer le contenu d’une pièce jointe par celui d’une autre pièce jointe de message.

Insérer une pièce jointe MSG à un emplacement spécifique

L’API Aspose.Email offre la capacité d’insérer une pièce jointe MSG dans un MSG parent en utilisant le MapiAttachmentCollection.Insert() méthode.

Remplacer le contenu des pièces jointes MSG intégrées

Cela peut être utilisé pour remplacer le contenu des pièces jointes intégrées par les nouvelles en utilisant le Remplacer méthode. Cependant, elle ne peut pas être utilisée pour insérer une pièce jointe avec PR_ATTACH_NUM = 4 (par exemple) dans une collection dont collection.Count = 2.

Enregistrer les pièces jointes d’un message signé numériquement

L’API Aspose.Email offre la capacité d’obtenir ou de définir une valeur indiquant si le message signé en clair sera décodé. 

Renommer une pièce jointe dans un MapiMessage

Aspose.Email permet d’éditer le Nom d’affichage valeur de la propriété dans pièces jointes MapiMessage.

L’exemple de code suivant montre comment mettre à jour les noms affichés de la première et de la deuxième pièce jointe dans le message Mapi chargé :

MapiMessage msg = MapiMessage.load(fileName);
msg.getAttachments().get_Item(0).setDisplayName("New display name 1");
msg.getAttachments().get_Item(1).setDisplayName("New display name 2");

Vérifier si une pièce jointe est intégrée ou normale

La différence entre les pièces jointes intégrées et normales réside dans leur présentation dans un e‑mail. Les pièces jointes intégrées sont incorporées dans le corps du message et peuvent être visualisées sans ouvrir de fichier séparé ni télécharger quoi que ce soit. Les pièces jointes normales, en revanche, sont des fichiers distincts attachés à l’e‑mail mais ne sont pas affichés directement dans le corps du message et doivent être téléchargés puis ouverts séparément. Le MapiAttachment.IsInline propriété du MapiAttachment la classe obtient une valeur indiquant si la pièce jointe est intégrée ou normale.

L’exemple de code suivant charge un message électronique depuis un fichier, puis récupère les informations sur les pièces jointes, en affichant spécifiquement le nom affiché de chaque pièce jointe ainsi que si elle est intégrée dans le message ou non :

MapiMessage message = MapiMessage.load("fileName");

for (MapiAttachment attach : message.getAttachments()) {
    System.out.println(attach.getDisplayName() + ": " + attach.isInline());
}