Bekerja dengan Properti MAPI

Mengakses dan Mengatur Properti Outlook MAPI

Kelas MapiProperty mewakili properti MAPI, yang berisi:

  • Nama: string yang mewakili nama properti.
  • Tag: sebuah nilai panjang yang mewakili tag properti.
  • Data: array byte yang mewakili data properti.

Mendapatkan Properti MAPI menggunakan Tag Properti MAPI

Untuk mendapatkan properti MAPI:

  1. Buat instance MapiMessage dengan memuat dari file atau stream.
  2. Dapatkan MapiProperty dari MapiMessage.Properties dengan kunci MapiPropertyTag.
  3. Dapatkan Data MapiProperty dengan metode GetX.

Potongan kode berikut menunjukkan cara mendapatkan properti MAPI menggunakan tag properti MAPI.

Mengatur Properti MAPI

Potongan kode berikut menunjukkan cara mengatur properti MAPI.

di mana definisi metode convertDateTime adalah sebagai berikut:

Membaca Properti MAPI yang Dinamai dari File MSG Outlook

Aspose.Email menyediakan serangkaian API untuk bekerja dengan file MSG, termasuk ekstraksi properti MAPI ber‑nama.

Baca Properti MAPI yang Dinamai dari File MSG

Untuk membaca properti MAPI yang dinamai, kami dapat menggunakan properti named_properties dari MapiMessage kelas. Contoh kode berikut memperlihatkan cara memuat sebuah pesan, mengambil semua properti MAPI ber‑nama, dan mengiterasi setiap properti untuk memeriksa nilainya:

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

Membaca Properti MAPI Bernama dari Lampiran

Aspose.Email memungkinkan untuk mengambil semua properti MAPI ber‑nama dari sebuah lampiran. Contoh kode berikut memperlihatkan cara membaca properti MAPI ber‑nama dari lampiran:

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

Menghapus Properti dari MSG dan Lampiran

Contoh kode ini mendemonstrasikan pembuatan pesan Outlook MSG dengan konten body dan file pesan terlampir. Ini juga memperlihatkan cara menghapus properti lampiran dari pesan yang dibuat.

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