Ciri-ciri dan Fungsi

Ciri-ciri dan Fungsi

Halaman ini meliputi setiap ciri utama aspose-email-foss 26.3 dengan contoh Python yang berfungsi.


Membaca Fail MSG

Muatkan fail MSG dan akses sifat terasnya:

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

Mencipta Fail MSG

Cipta mesej 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")

Tetapkan subjek dan isi pada mesej sedia ada:

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

Penerima

Tambah penerima dengan nama paparan dan jenis:

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

Tambah lampiran fail binari:

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

Benamkan mesej 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")

Sifat MAPI

Baca dan tulis sifat MAPI mengikut ID sifat:

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 sifat:

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

Penukaran E-mel

Tukar antara format MSG (MAPI) dan e-mel (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 Peringkat Rendah

Baca struktur kontena 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)

Petua dan Amalan Terbaik

  • Sentiasa panggil msg.close() atau gunakan pengurus konteks apabila selesai membaca untuk melepaskan pemegang fail
  • Gunakan msg.validation_issues untuk memeriksa isu pematuhan format MSG
  • The strict parameter dalam MapiMessage.from_file() mengawal toleransi ralat — tetapkan kepada False untuk penguraian yang longgar
  • Semua data lampiran dimuatkan ke dalam memori semasa from_file() — gunakan att.data untuk mengakses bait secara langsung; iter_attachments_info() adalah iterator kemudahan ke atas senarai lampiran yang sudah dipenuhi
  • Gunakan to_email_string() untuk pratonton teks cepat tanpa pembinaan objek e-mel penuh

Isu Umum

IsuPuncaPembetulan
CFBError semasa memuatkanBukan fail CFB/MSG yang sahSahkan fail itu adalah MSG Outlook sebenar
Isi kosong selepas dimuatkanIsi disimpan dalam HTML sahajaSemak msg.body_html daripada msg.body
Penerima tidak ditemuiMSG tidak mempunyai penyimpanan penerimaPenerima adalah opsional dalam format MSG; semak iter_attachments_info()

FAQ

Versi format MSG apa yang disokong?

Pustaka ini membaca dan menulis fail MSG dalam format CFB v3 dan v4, serasi dengan Microsoft Outlook.

Bolehkah saya membaca fail EML?

Tidak secara langsung. Perpustakaan mengendalikan format MSG. Gunakan MapiMessage.from_email_message() untuk menukar daripada RFC 5322 EmailMessage objek.

Adakah thread-safety disokong?

Setiap MapiMessage dan CFBReader instans adalah bebas. Akses serentak kepada instans berasingan dari benang berasingan adalah selamat.


Ringkasan Rujukan API

Kelas / KaedahKeterangan
MapiMessageRepresentasi mesej MSG peringkat tinggi
MapiMessage.from_file()Muatkan fail MSG
MapiMessage.create()Cipta mesej MSG baru
MapiMessage.save()Simpan ke fail MSG
MapiMessage.to_email_message()Tukar kepada EmailMessage (RFC 5322)
MapiMessage.from_email_message()Tukar daripada EmailMessage ke MSG
MapiMessage.add_recipient()Tambah penerima
MapiMessage.add_attachment()Tambah lampiran binari
MapiAttachmentLampiran pada mesej
MapiRecipientPenerima pada mesej
MapiPropertyKemasukan sifat MAPI
CFBReaderPembaca kontena CFB peringkat rendah
CFBWriterPenulis kontena CFB peringkat rendah
MsgReaderPembaca struktur MSG peringkat rendah
 Bahasa Melayu