Робота з властивостями MAPI

Доступ та встановлення Outlook MAPI властивості

Клас MapiProperty представляє MAPI властивість, яка містить:

  • Name: рядок, що представляє назву властивості.
  • Tag: довге число, що представляє тег властивості.
  • Data: масив байтів, що представляє дані властивості.

Отримання MAPI властивості за допомогою тега MAPI властивості

Для отримання MAPI властивостей:

  1. Створіть екземпляр MapiMessage, завантаживши його з файлів або потоку.
  2. Отримайте MapiProperty з MapiMessage.Properties за ключами MapiPropertyTag.
  3. Отримайте дані MapiProperty методом GetX.

Нижче наведено фрагмент коду, який показує, як отримати MAPI властивість, використовуючи тег MAPI властивості.

Встановлення MAPI властивостей

Наступний фрагмент коду показує, як встановити властивості MAPI.

де визначення методу convertDateTime таке:

Зчитування іменованих MAPI властивостей з Outlook MSG файлів

Aspose.Email надає набір API для роботи з MSG файлами, включаючи вилучення названих MAPI‑властивостей.

Зчитування іменованих MAPI властивостей з файлу MSG

Щоб прочитати іменовані MAPI властивості, ми можемо використати властивість named_properties. MapiMessage клас. Наведений нижче приклад коду показує, як завантажити повідомлення, отримати всі названі MAPI‑властивості, пройти по кожній властивості для перевірки її значення:

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

Читання іменованої MAPI властивості з вкладення

Aspose.Email робить можливим отримання всіх названих MAPI‑властивостей прикріплення. Наведений нижче приклад коду показує, як читати названі MAPI‑властивості з прикріплень:

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

Видалення властивостей з MSG та вкладень

Цей приклад коду демонструє створення Outlook MSG повідомлення з вмістом тіла та прикріпленим файлом повідомлення. Він також показує, як видалити властивість вкладення зі створеного повідомлення.

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