Arbeiten mit MAPI‑Eigenschaften

Zugriff auf und Setzen von Outlook‑MAPI‑Eigenschaften

Die MapiProperty‑Klasse repräsentiert eine MAPI‑Eigenschaft, die enthält:

  • Name: ein String, der den Namen der Eigenschaft darstellt.
  • Tag: ein Long‑Wert, der das Property‑Tag repräsentiert.
  • Data: ein Byte‑Array, das die Daten der Eigenschaft repräsentiert.

Abrufen einer MAPI‑Eigenschaft mittels des MAPI‑Property‑Tags

Um MAPI‑Eigenschaften zu erhalten:

  1. Erstellen Sie eine Instanz von MapiMessage, indem Sie aus Dateien oder einem Stream laden.
  2. Holen Sie die MapiProperty aus MapiMessage.Properties mittels MapiPropertyTag‑Schlüsseln.
  3. Rufen Sie die Daten der MapiProperty über die Methode GetX ab.

Das folgende Code‑Snippet zeigt, wie Sie eine MAPI‑Eigenschaft über das MAPI‑Property‑Tag abrufen.

Setzen von MAPI‑Eigenschaften

Das folgende Code‑Snippet zeigt, wie Sie MAPI‑Eigenschaften setzen.

wobei die Definition der convertDateTime‑Methode wie folgt aussieht:

Benannte MAPI-Eigenschaften aus Outlook MSG-Dateien lesen

Aspose.Email bietet eine Reihe von APIs zur Arbeit mit MSG‑Dateien, einschließlich des Extrahierens benannter MAPI‑Eigenschaften.

Benannte MAPI-Eigenschaften aus MSG-Datei lesen

Um benannte MAPI-Eigenschaften zu lesen, können wir die named_properties-Eigenschaft des MapiMessage Klasse. Das folgende Codebeispiel zeigt, wie man eine Nachricht lädt, alle benannten MAPI‑Eigenschaften abruft und jede Eigenschaft durchläuft, um ihren Wert zu prüfen:

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}")

Auslesen benannter MAPI‑Eigenschaften aus einem Anhang

Aspose.Email ermöglicht das Abrufen aller benannten MAPI‑Eigenschaften eines Anhangs. Das folgende Codebeispiel zeigt, wie benannte MAPI‑Eigenschaften aus Anhängen gelesen werden:

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()}")

Entfernen von Eigenschaften aus MSG‑Dateien und Anhängen

Dieses Code‑Beispiel demonstriert die Erstellung einer Outlook‑MSG‑Nachricht mit einem Textkörper und einer angehängten Nachrichtendatei. Es zeigt außerdem, wie ein Anhangs‑Property aus der erstellten Nachricht gelöscht wird.

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}")