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-foss
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 Didhukung

Format (Inggris)ImporEkspor
MSGYa, aku tahu.Ya, aku tahu.
CFBYa, 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.


Memulai