Introducere

Aspose.Email FOSS for Python is now available on PyPI: a free, MIT-licensed library for creating, reading, and converting Outlook .msg fișiere complet în Python, fără nicio dependență de Microsoft Office sau de vreo extensie nativă. Instalați-l cu pip install aspose-email-foss>=26.3 și începeți să lucrați cu containerele MSG și CFB imediat.

Biblioteca vizează Python 3.10 și versiunile ulterioare. Implementă formatul Compound File Binary (CFB) și formatul de mesaj MSG de la zero, oferindu-vă un control determinist asupra modului în care mesajele de e‑mail sunt serializate și citite. Deoarece implementarea este în Python pur, rulează identic pe Windows, macOS, Linux și în medii containerizate.

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.


Caracteristici cheie

Creează fișiere MSG

Construiți compatibile cu Outlook .msg fișiere de la zero utilizând MapiMessage.create(). Setați proprietățile standard MAPI, cum ar fi subiectul, expeditorul, timpul de livrare și câmpurile de afișare, prin PropertyId enum. Adăugați destinatari cu add_recipient() și atașamente de fișiere cu add_attachment(), apoi salvați rezultatul pe disc.

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")

Citește și convertește MSG în EML

Încărcați un existent .msg fișier cu MapiMessage.from_file() și convertiți-l într-un Python standard EmailMessage obiect prin to_email_message(). De acolo, serializați în octeți EML pentru stocare sau trimitere prin 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)

Inspectează structura internă a MSG

Utilizați MsgReader și componenta sa de bază CFBReader pentru a inspecta structura binară a unui fișier MSG. Accesați metadatele CFB (versiune, dimensiune sector, număr de intrări în director) și iterați peste intrările de proprietate MAPI la nivel binar.

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()

Acces CFB la nivel scăzut

Citiți și parcurgeți orice container Compound File Binary utilizând CFBReader. Enumerați stocările și fluxurile, rezolvați căile după nume și extrageți datele brute ale fluxului pentru procesare personalizată.

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()

Începe rapid

Instalați biblioteca și creați primul fișier MSG în mai puțin de zece linii:

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"])

Formate suportate

FormatImportExport
MSGDaDa
CFBDaDa

Open Source și Licențiere

Aspose.Email FOSS for Python is released under the MIT License. Puteți să o utilizați în proiecte personale, interne și comerciale fără restricții. Codul sursă este disponibil pe GitHub.


Începeți