Travailler avec les propriétés MAPI

Accès et définition d’une propriété Outlook MAPI

La classe MapiProperty représente une propriété MAPI, qui contient :

  • Name : une chaîne qui représente le nom de la propriété.
  • Tag : un entier long qui représente le tag de la propriété.
  • Data : un tableau d’octets qui représente les données de la propriété.

Obtention d’une propriété MAPI à l’aide du tag de propriété MAPI

Pour obtenir les propriétés MAPI :

  1. Créez une instance de MapiMessage en la chargeant depuis des fichiers ou un flux.
  2. Obtenez le MapiProperty depuis MapiMessage.Properties à l’aide des clés MapiPropertyTag.
  3. Obtenez les données du MapiProperty via la méthode GetX.

Le code suivant montre comment obtenir une propriété MAPI en utilisant le tag de propriété MAPI.

Définition des propriétés MAPI

L’extrait de code suivant vous montre comment définir des propriétés MAPI.

où la définition de la méthode convertDateTime est la suivante :

Lecture des propriétés MAPI nommées à partir des fichiers Outlook MSG

Aspose.Email fournit un ensemble d’API pour travailler avec les fichiers MSG, y compris l’extraction des propriétés MAPI nommées.

Lire les propriétés MAPI nommées depuis un fichier MSG

Pour lire les propriétés MAPI nommées, nous pouvons utiliser la propriété named_properties du MapiMessage classe. L’exemple de code suivant montre comment charger un message, récupérer toutes les propriétés MAPI nommées, itérer sur chaque propriété pour vérifier sa valeur :

import aspose.email as ae

msg = ae.mapi.MapiMessage.load("my.msg")

# Get all named MAPI properties
properties = msg.named_properties.values
# Read all properties in foreach loop
for prop in properties:
    #  Read any specific property
    if prop.descriptor.canonical_name == "PidLidSideEffects":
        print(f"{prop.descriptor.canonical_name} = {prop}")
    if prop.descriptor.canonical_name == "PidLidInternetAccountName":
        print(f"{prop.descriptor.canonical_name} = {prop}")

Lecture d’une propriété MAPI nommée depuis une pièce jointe

Aspose.Email permet de récupérer toutes les propriétés MAPI nommées d’une pièce jointe. L’exemple de code suivant montre comment lire les propriétés MAPI nommées à partir des pièces jointes :

import aspose.email as ae

msg = ae.mapi.MapiMessage.load("my.msg")

# Get all named MAPI properties
attach_properties = msg.attachments[0].named_properties.values
# Read all properties in foreach loop
for prop in attach_properties:
    #  Read any specific property
    if prop.descriptor.name == "AttachmentOriginalUrl":
        print(f"{prop.descriptor.name} = {prop.get_string()}")
    if prop.descriptor.name == "AttachmentWasSavedToCloud":
        print(f"{prop.descriptor.name} = {prop.get_boolean()}")

Suppression de propriétés des MSG et des pièces jointes

Cet exemple de code montre la création d’un message Outlook MSG avec un contenu de corps et un fichier de message joint. Il illustre également comment supprimer une propriété de pièce jointe du message créé.

import aspose.email as ae

# create an MSG
msg = ae.mapi.MapiMessage("from@doamin.com", "to@domain.com", "subject", "body");
msg.set_body_content("<html><body><h1>This is the body content</h1></body></html>", ae.mapi.BodyContentType.HTML)

# load message and add it to created MSG as attachment
attachment = ae.mapi.MapiMessage.load(attach.msg")
msg.attachments.add("Outlook2 Test subject.msg", attachment)

# count of attachment properties before removal
print(f"Before removal = {msg.attachments[0].properties.count}")

# Delete anyone attachment property
msg.attachments[0].remove_property(923467779)

# count of attachment properties after removal
print(f"Before removal = {msg.attachments[0].properties.count}")