Pengantar
Aspose.Email FOSS for Python is now available on PyPI: a free, MIT-licensed library for creating, reading, and converting Outlook .msg file sepenuhnya dalam Python, tanpa ketergantungan pada Microsoft Office atau ekstensi asli. Install dengan pip install aspose-email-foss>=26.3 dan mulai bekerja dengan MSG dan CFB wadah segera.
Perpustakaan ini menargetkan Python 3.10 dan lebih baru. Ini menerapkan format Compound File Binary (CFB) dan format pesan MSG dari awal, memberi Anda kontrol deterministik atas bagaimana pesan email diserialisasi dan dibaca. Karena implementasi adalah Python murni, itu berjalan secara identik di Windows, macOS, Linux, dan dalam lingkungan yang terkontainerisasi .
Aspose.Email FOSS is designed for developers building email processing pipelines, compliance archival tools, forensic analysis workflows, or any application that needs to create or inspect Outlook-compatible message files without a running Exchange or Outlook installation.
Fitur Utama
Membuat File MSG
Buat yang kompatibel dengan Outlook .msg file dari awal menggunakan MapiMessage.create(). Atur sifat MAPI standar seperti subjek, pengirim, waktu pengiriman dan tampilan bidang melalui PropertyId Enum. Tambahkan penerima dengan add_recipient() dan lampiran file dengan add_attachment(), lalu simpan hasilnya ke disk.
from aspose.email_foss import msg
message = msg.MapiMessage.create(
"Quarterly status update and rollout plan",
"Hello team,\n\nPlease find the latest rollout summary attached.\n\nRegards,\nEngineering",
)
message.set_property(msg.PropertyId.SENDER_NAME, "Build Agent")
message.set_property(msg.PropertyId.SENDER_EMAIL_ADDRESS, "build.agent@example.com")
message.set_property(msg.PropertyId.INTERNET_MESSAGE_ID, "<example-001@example.com>")
message.add_recipient("alice@example.com", display_name="Alice Example")
message.add_recipient("bob@example.com", display_name="Bob Example")
message.add_recipient(
"carol@example.com",
display_name="Carol Example",
recipient_type=msg.RECIPIENT_TYPE_CC,
)
message.add_attachment("hello.txt", b"sample attachment\n", mime_type="text/plain")
message.save("example-message.msg")
Membaca dan Mengubah MSG menjadi EML
Mengisi yang ada .msg berkas dengan MapiMessage.from_file() dan mengonversi ke Python standar. EmailMessage objek melalui to_email_message().Dari sana, serialize ke EML byte untuk penyimpanan atau forwarding melalui SMTP.
from aspose.email_foss import msg
with msg.MapiMessage.from_file("example-message.msg") as loaded:
email_message = loaded.to_email_message()
eml_bytes = email_message.as_bytes()
with open("example-message.eml", "wb") as f:
f.write(eml_bytes)
Periksa MSG Internal
Penggunaan MsgReader dan yang mendasarinya CFBReader untuk memeriksa struktur biner file MSG. Akses metadata CFB (versi, ukuran sektor, jumlah entri direktori) dan iterasi atas entri properti MAPI pada tingkat bineri.
from aspose.email_foss import msg
reader = msg.MsgReader.from_file("example-message.msg")
cfb = reader.cfb_reader
print(f"CFB major_version={cfb.major_version}")
print(f"sector_size={cfb.sector_size}")
print(f"directory_entries={cfb.directory_entry_count}")
for entry in reader.iter_top_level_fixed_length_properties():
tag = entry.property_tag
print(f"tag=0x{tag:08X} flags=0x{entry.flags:08X} value={entry.value.hex()}")
reader.close()
Akses CFB Tingkat Rendah
Membaca dan menjelajahi kontainer Komposit File Binary menggunakan CFBReader. Mengdaftar penyimpanan dan aliran, menyelesaikan jalur dengan nama, dan mengekstrak data arus mentah untuk pengolahan kustom.
from aspose.email_foss.cfb import CFBReader
reader = CFBReader.from_file("example-message.msg")
for entry in reader.iter_storages():
print(f"Storage: {entry.name}")
for entry in reader.iter_streams():
data = reader.get_stream_data(entry.stream_id)
print(f"Stream: {entry.name} size={len(data)}")
reader.close()
Memulai dengan cepat
Instal perpustakaan dan buat file MSG pertama Anda dalam waktu kurang dari sepuluh baris:
pip install aspose-email-fossfrom aspose.email_foss import msg
message = msg.MapiMessage.create("Hello from Python", "This is a test message.")
message.set_property(msg.PropertyId.SENDER_EMAIL_ADDRESS, "sender@example.com")
message.add_recipient("recipient@example.com", display_name="Recipient")
message.save("hello.msg")
with msg.MapiMessage.from_file("hello.msg") as loaded:
eml = loaded.to_email_message()
print(eml["Subject"])
Format yang Didhukung
| Format (Inggris) | Impor | Ekspor |
|---|---|---|
| MSG | Ya, aku tahu. | Ya, aku tahu. |
| CFB | Ya, aku tahu. | Ya, aku tahu. |
Open Source & Lisensi
Aspose.Email FOSS for Python is released under the Lisensi MIT.Anda dapat menggunakannya dalam proyek pribadi, internal dan komersial tanpa batasan. Kode sumber tersedia di WEB GitHub.