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

FormatImportEksport
MSGYaYa
CFBYaYa

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.


Memulakan