Praca z właściwościami MAPI

Dostęp i ustawianie właściwości Outlook MAPI

Klasa MapiProperty reprezentuje właściwość MAPI, która zawiera:

  • Name: łańcuch znaków reprezentujący nazwę właściwości.
  • Tag: liczba typu long reprezentująca tag właściwości.
  • Data: tablica bajtów reprezentująca dane właściwości.

Uzyskiwanie właściwości MAPI przy użyciu tagu właściwości MAPI

Aby uzyskać właściwości MAPI:

  1. Utwórz instancję MapiMessage, wczytując z plików lub ze strumienia.
  2. Pobierz MapiProperty z MapiMessage.Properties przy użyciu kluczy MapiPropertyTag.
  3. Pobierz dane MapiProperty metodą GetX.

Poniższy fragment kodu pokazuje, jak uzyskać właściwość MAPI przy użyciu tagu właściwości MAPI.

Ustawianie właściwości MAPI

Poniższy fragment kodu pokazuje, jak ustawić właściwości MAPI.

gdzie definicja metody convertDateTime jest następująca:

Odczytywanie nazwanych właściwości MAPI z plików Outlook MSG

Aspose.Email udostępnia zestaw interfejsów API do pracy z plikami MSG, w tym wyodrębnianie nazwanych właściwości MAPI.

Odczytaj nazwane właściwości MAPI z pliku MSG

Aby odczytać nazwane właściwości MAPI, możemy użyć właściwości named_properties. MapiMessage class. Poniższy przykład kodu pokazuje, jak załadować wiadomość, pobrać wszystkie nazwane właściwości MAPI, iterować po każdej właściwości, aby sprawdzić jej wartość:

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

Odczytywanie nazwanej właściwości MAPI z załącznika

Aspose.Email umożliwia pobranie wszystkich nazwanych właściwości MAPI załącznika. Poniższy przykład kodu pokazuje, jak odczytać nazwane właściwości MAPI z załączników:

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

Usuwanie właściwości z MSG i załączników

Ten przykład kodu demonstruje tworzenie wiadomości Outlook MSG z treścią w ciele oraz załączonym plikiem wiadomości. Pokazuje również, jak usunąć właściwość załącznika z utworzonej wiadomości.

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