Fitur dan Fungsionalitas

Fitur dan Fungsionalitas

Halaman ini mencakup setiap fitur utama dari aspose-email-foss 26.3 dengan contoh Python yang berfungsi.


Membaca File MSG

Muat file MSG dan akses properti intinya:

from aspose.email_foss.msg import MapiMessage

msg = MapiMessage.from_file("message.msg")

print(f"Subject: {msg.subject}")
print(f"Body: {msg.body}")
print(f"HTML Body: {msg.body_html}")
print(f"Message Class: {msg.message_class}")

Membuat File MSG

Buat pesan baru dari awal:

from aspose.email_foss.msg import MapiMessage

msg = MapiMessage.create("Meeting Notes", "Please find the notes attached.")
msg.save("new_message.msg")

Atur subjek dan isi pada pesan yang ada:

msg.subject = "Updated Subject"
msg.body = "Updated body text"
msg.save("updated.msg")

Penerima

Tambahkan penerima dengan nama tampilan dan tipe:

from aspose.email_foss.msg import MapiMessage, RECIPIENT_TYPE_CC

msg = MapiMessage.create("Hello", "Message body")
msg.add_recipient("alice@example.com", display_name="Alice Smith")
msg.add_recipient("bob@example.com", display_name="Bob Jones", recipient_type=RECIPIENT_TYPE_CC)
msg.save("with_recipients.msg")

Lampiran

Tambahkan lampiran file biner:

with open("report.pdf", "rb") as f:
    data = f.read()

msg.add_attachment("report.pdf", data, mime_type="application/pdf")
msg.save("with_attachment.msg")

Sematkan pesan MSG sebagai lampiran bersarang:

inner = MapiMessage.create("Inner Subject", "Inner body")
msg.add_embedded_message_attachment(inner, filename="embedded.msg", mime_type="application/vnd.ms-outlook")
msg.save("with_embedded.msg")

Properti MAPI

Baca dan tulis properti MAPI berdasarkan ID properti:

from aspose.email_foss.msg import PropertyId

# Read a property
subject = msg.get_property(PropertyId.SUBJECT)

# Set a property
msg.set_property(PropertyId.SUBJECT, "New Subject")

Iterasi semua properti:

for prop in msg.iter_properties():
    print(f"Tag: {prop.property_tag:#010x}")

Konversi Email

Konversi antara format MSG (MAPI) dan email (RFC 5322):

# MSG to email string
email_str = msg.to_email_string()
print(email_str[:500])

# MSG to EmailMessage object
email_msg = msg.to_email_message()

# EmailMessage back to MapiMessage
msg2 = MapiMessage.from_email_message(email_msg)
msg2.save("roundtrip.msg")

Operasi CFB Tingkat Rendah

Baca struktur kontainer CFB secara langsung:

from aspose.email_foss.cfb import CFBReader

reader = CFBReader.from_file("message.msg")
print(f"File size: {reader.file_size} bytes")
print(f"Sectors: {reader.fat_sector_count}")
print(f"Entries: {reader.directory_entry_count}")

for entry in reader.iter_storages():
    print(f"Storage: {entry}")

for entry in reader.iter_streams():
    print(f"Stream: {entry}")

reader.close()

Tulis dokumen CFB:

from aspose.email_foss.msg import MsgWriter

data = msg.to_bytes()
with open("output.msg", "wb") as f:
    f.write(data)

Tips dan Praktik Terbaik

  • Selalu panggil msg.close() atau gunakan context manager setelah selesai membaca untuk melepaskan handle file
  • Gunakan msg.validation_issues untuk memeriksa masalah kepatuhan format MSG
  • The strict parameter dalam MapiMessage.from_file() mengontrol toleransi kesalahan — set ke False untuk parsing yang longgar
  • Semua data lampiran dimuat ke memori selama from_file() — gunakan att.data untuk mengakses byte secara langsung; iter_attachments_info() adalah iterator praktis atas daftar lampiran yang sudah terisi
  • Gunakan to_email_string() untuk pratinjau teks cepat tanpa konstruksi objek email lengkap

Masalah Umum

MasalahPenyebabPerbaikan
CFBError saat memuatBukan file CFB/MSG yang validVerifikasi bahwa file tersebut memang Outlook MSG
Badan kosong setelah dimuatBadan disimpan hanya dalam HTMLPeriksa msg.body_html daripada msg.body
Penerima tidak adaMSG tidak memiliki penyimpanan penerimaPenerima bersifat opsional dalam format MSG; periksa iter_attachments_info()

FAQ

Versi format MSG apa yang didukung?

Perpustakaan membaca dan menulis file MSG dalam format CFB v3 dan v4, kompatibel dengan Microsoft Outlook.

Apakah saya dapat membaca file EML?

Tidak secara langsung. Perpustakaan menangani format MSG. Gunakan MapiMessage.from_email_message() untuk mengonversi dari RFC 5322 EmailMessage objek.

Apakah thread-safety didukung?

Setiap MapiMessage dan CFBReader instansi bersifat independen. Akses bersamaan ke instansi terpisah dari thread terpisah aman.


Ringkasan Referensi API

Kelas / MetodeDeskripsi
MapiMessageRepresentasi pesan MSG tingkat tinggi
MapiMessage.from_file()Muat file MSG
MapiMessage.create()Buat pesan MSG baru
MapiMessage.save()Simpan ke file MSG
MapiMessage.to_email_message()Konversi ke EmailMessage (RFC 5322)
MapiMessage.from_email_message()Konversi dari EmailMessage ke MSG
MapiMessage.add_recipient()Tambahkan penerima
MapiMessage.add_attachment()Tambahkan lampiran biner
MapiAttachmentLampiran pada pesan
MapiRecipientPenerima pada pesan
MapiPropertyEntri properti MAPI
CFBReaderPembaca kontainer CFB tingkat rendah
CFBWriterPenulis kontainer CFB tingkat rendah
MsgReaderPembaca struktur MSG tingkat rendah
 Bahasa Indonesia