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_issuesuntuk memeriksa masalah kepatuhan format MSG - The
strictparameter dalamMapiMessage.from_file()mengontrol toleransi kesalahan — set keFalseuntuk parsing yang longgar - Semua data lampiran dimuat ke memori selama
from_file()— gunakanatt.datauntuk 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
| Masalah | Penyebab | Perbaikan |
|---|---|---|
CFBError saat memuat | Bukan file CFB/MSG yang valid | Verifikasi bahwa file tersebut memang Outlook MSG |
| Badan kosong setelah dimuat | Badan disimpan hanya dalam HTML | Periksa msg.body_html daripada msg.body |
| Penerima tidak ada | MSG tidak memiliki penyimpanan penerima | Penerima 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 / Metode | Deskripsi |
|---|---|
MapiMessage | Representasi 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 |
MapiAttachment | Lampiran pada pesan |
MapiRecipient | Penerima pada pesan |
MapiProperty | Entri properti MAPI |
CFBReader | Pembaca kontainer CFB tingkat rendah |
CFBWriter | Penulis kontainer CFB tingkat rendah |
MsgReader | Pembaca struktur MSG tingkat rendah |