Einführung

Aspose.Email FOSS for Python is now available on PyPI: a free, MIT-licensed library for creating, reading, and converting Outlook .msg Die Dateien sind vollständig in Python, ohne Abhängigkeit von Microsoft Office oder einer nativen Erweiterung. Installieren Sie es mit pip install aspose-email-foss>=26.3 und sofort mit den MSG- und CFB-Containern arbeiten.

Die Bibliothek zielt auf Python 3.10 und höher ab. Sie implementiert das Compound File Binary (CFB) Format und das MSG-Nachrichtenformat von Grund auf, was Ihnen eine deterministische Kontrolle darüber gibt, wie E-Mail-Messages serialisiert und gelesen werden. Da die Implementation reine Python ist, läuft sie identisch unter Windows, macOS, Linux und in Containerumgebungen.

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.


Hauptmerkmale

Erstellen von MSG-Dateien

Outlook-kompatibel erstellen .msg Dateien von Grund auf mit Hilfe der MapiMessage.create(). Setzen Sie Standard-MAPI Eigenschaften wie Thema, Absender, Lieferzeit und Anzeigefelder durch die PropertyId Enum. Hinzufügen von Empfängern mit add_recipient() und Dateianlagen mit add_attachment(), dann das Ergebnis auf Festplatte speichern.

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

MSG in EML lesen und umwandeln

Ein vorhandenes System laden. .msg Akten mit MapiMessage.from_file() und konvertieren Sie es in einen Standard-Python. EmailMessage Gegenstand über to_email_message().Von dort aus werden EML-Bytes für die Speicherung oder Weiterleitung über SMTP serialisiert.

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)

Inspektieren Sie MSG-Interne

Verwendung MsgReader und deren Basiswert CFBReader Zugriff auf CFB-Metadaten (Version, Sektorgröße, Anzahl der Verzeichnisanträge) und Iteration über MAPI-Einträge auf binärer Ebene.

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

CFB-Zugang auf niedriger Ebene

Lesen und durchlaufen von jedem Compound File Binary Container mit Hilfe der CFBReader.Aufzählen von Speichern und Streams, Lösungen nach Namen und Extraktion von Rohströmungsdaten für die benutzerdefinierte Verarbeitung.

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

Schneller Start

Installieren Sie die Bibliothek und erstellen Sie Ihre erste MSG-Datei in weniger als zehn Zeilen:

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

Unterstützte Formate

Format der DatenbankEinfuhrAusfuhr
MSG- Ja , das ist gut .- Ja , das ist gut .
CFB- Ja , das ist gut .- Ja , das ist gut .

Open Source und Lizenzierung

Aspose.Email FOSS for Python is released under the MIT-Lizenz.Sie können es in persönlichen, internen und kommerziellen Projekten ohne Einschränkung verwenden. Der Quellcode ist auf der Website des Verlages verfügbar. GitHub.


Wie man anfängt