Pengenalan
Aspose.Email FOSS untuk Python kini tersedia di PyPI: perpustakaan percuma, berlesen MIT untuk membuat, membaca, dan menukar fail Outlook .msg sepenuhnya dalam Python, tanpa kebergantungan pada Microsoft Office atau sebarang sambungan asli. Pasang ia dengan pip install aspose-email-foss>=26.3 dan mulakan kerja dengan kontena MSG dan CFB serta-merta.
Pustaka ini menyasarkan Python 3.10 dan ke atas. Ia melaksanakan format Compound File Binary (CFB) dan format mesej MSG dari awal, memberikan anda kawalan deterministik ke atas cara mesej e‑mel diserialkan dan dibaca. Oleh kerana pelaksanaan ini murni Python, ia berjalan secara serupa pada Windows, macOS, Linux, dan dalam persekitaran berbekas.
Aspose.Email FOSS direka untuk pembangun yang membina paip pemprosesan e-mel, alat arkib pematuhan, aliran kerja analisis forensik, atau mana-mana aplikasi yang memerlukan penciptaan atau pemeriksaan fail mesej yang serasi dengan Outlook tanpa pemasangan Exchange atau Outlook yang sedang berjalan.
Ciri-ciri Utama
Buat Fail MSG
Bina fail .msg yang serasi dengan Outlook dari awal menggunakan MapiMessage.create(). Tetapkan sifat MAPI standard seperti subjek, penghantar, masa penghantaran, dan medan paparan melalui enum PropertyId. Tambah penerima dengan add_recipient() dan lampiran fail dengan add_attachment(), kemudian simpan hasilnya ke cakera.
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")
Baca dan Tukar MSG kepada EML
Muatkan fail .msg sedia ada dengan MapiMessage.from_file() dan tukarkan ia kepada objek EmailMessage Python standard melalui to_email_message(). Dari situ, serialkan kepada bait EML untuk penyimpanan atau penghantaran 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 Dalaman MSG
Gunakan MsgReader dan CFBReader yang mendasarinya untuk memeriksa struktur binari fail MSG. Akses metadata CFB (versi, saiz sektor, kiraan entri direktori) dan ulang alik entri sifat MAPI pada peringkat binari.
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 Peringkat Rendah
Baca dan lalui mana-mana kontena Compound File Binary menggunakan CFBReader. Senaraikan storan dan aliran, selesaikan laluan mengikut nama, dan ekstrak data aliran mentah untuk pemprosesan khusus.
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()
Permulaan Cepat
Pasang perpustakaan dan cipta fail MSG pertama anda dalam kurang daripada sepuluh baris:
pip install aspose-email-foss>=26.3
from 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 Disokong
| Format | Import | Eksport |
|---|---|---|
| MSG | Ya | Ya |
| CFB | Ya | Ya |
Sumber Terbuka & Pelesenan
Aspose.Email FOSS untuk Python dikeluarkan di bawah MIT License. Anda boleh menggunakannya dalam projek peribadi, dalaman, dan komersial tanpa sekatan. Kod sumber tersedia di GitHub.