Einleitung
Aspose.Email FOSS for Python is now available on PyPI: a free, MIT-licensed library for creating, reading, and converting Outlook .msg Dateien vollständig in Python, ohne Abhängigkeit von Microsoft Office oder irgendeiner nativen Erweiterung. Installieren Sie es mit pip install aspose-email-foss>=26.3 und beginnen Sie sofort, mit MSG- und CFB-Containern zu arbeiten.
Die Bibliothek richtet sich an Python 3.10 und höher. Sie implementiert das Compound File Binary (CFB)‑Format und das MSG‑Nachrichtenformat von Grund auf, wodurch Sie eine deterministische Kontrolle darüber erhalten, wie E‑Mail‑Nachrichten serialisiert und gelesen werden. Da die Implementierung reines Python ist, läuft sie identisch unter Windows, macOS, Linux und in containerisierten Umgebungen.
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.
Wichtige Funktionen
MSG‑Dateien erstellen
Erstellen Sie Outlook-kompatible .msg Dateien von Grund auf mit MapiMessage.create(). Setzen Sie Standard-MAPI-Eigenschaften wie Betreff, Absender, Zustellzeit und Anzeigefelder über die PropertyId Enum. Fügen Sie Empfänger hinzu mit add_recipient() und Dateianhänge mit add_attachment(), und speichern Sie das Ergebnis anschließend auf dem Datenträger.
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 lesen und in EML konvertieren
Laden Sie eine bestehende .msg Datei mit MapiMessage.from_file() und konvertieren Sie sie in ein standardmäßiges Python EmailMessage Objekt über to_email_message(). Von dort aus in EML‑Bytes serialisieren, um sie zu speichern oder per SMTP weiterzuleiten.
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)
MSG‑Interna untersuchen
Verwenden MsgReader und sein zugrunde liegendes CFBReader um die binäre Struktur einer MSG‑Datei zu untersuchen. Greifen Sie auf CFB‑Metadaten (Version, Sektorgröße, Anzahl der Verzeichniseinträge) zu und iterieren Sie über MAPI‑Eigenschaftseinträge auf Binärebene.
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()
Low‑Level‑Zugriff auf CFB
Lesen und durchlaufen Sie jeden Compound File Binary‑Container mit CFBReader.Auflisten von Storages und Streams, Auflösen von Pfaden nach Namen und Extrahieren von Rohstream‑Daten für 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()
Schnellstart
Installieren Sie die Bibliothek und erstellen Sie Ihre erste MSG‑Datei in weniger als zehn Zeilen:
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"])
Unterstützte Formate
| Format | Importieren | Exportieren |
|---|---|---|
| MSG | Ja | Ja |
| CFB | Ja | Ja |
Open Source & Lizenzierung
Aspose.Email FOSS for Python is released under the MIT License. Sie können es in persönlichen, internen und kommerziellen Projekten ohne Einschränkung verwenden. Der Quellcode ist verfügbar auf GitHub.