Wie man mit Aspose.Email FOSS für Python beginnt
aspose-email-foss for Python ist eine kostenlose, MIT-lizenzierte Bibliothek für das Erstellen, Lesen und Verfassen von Konvertierung von Outlook MSG Dateien und CFB-Container – keine Microsoft Office erforderlich, keine native Extensions, reines Python von PyPI.
Schritt für Schritt Guide
Schritt 1: Paket installieren
Installieren von PyPI mit Pip:
pip install aspose-email-fossÜberprüfen Sie, ob die Installation korrekt geladen wurde:
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")Schritt 2: Importieren erforderliche Klassen
Importieren Sie die Module, die Sie für das Erstellen von Nachrichten, Eigenschaftszuweisung und Formatkonvertierung benötigen:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdSchritt 3: Erstellen einer MSG Datei
benutzen MapiMessage.create() um eine Nachricht mit einem Thema und Körper zu erstellen. Set Sender Metadaten mit PropertyId Konstanzen, Fügen Sie Empfänger hinzu und fügen sie eine Datei hinzufügt.
message = MapiMessage.create("Getting Started", "Hello from aspose-email-foss!")
message.set_property(PropertyId.SENDER_NAME, "Build Agent")
message.set_property(PropertyId.SENDER_EMAIL_ADDRESS, "agent@example.com")
message.set_property(
PropertyId.MESSAGE_DELIVERY_TIME,
datetime(2026, 1, 1, 9, 0, tzinfo=timezone.utc),
)
message.add_recipient("alice@example.com", display_name="Alice Example")
message.add_attachment("notes.txt", b"Meeting notes go here.\n", mime_type="text/plain")
message.save("getting-started.msg")
print("getting-started.msg written.")Schritt 4: Lesen Sie die MSG Datei zurück
Laden Sie die gespeicherte Datei mit MapiMessage.from_file() als Context Manager. Zugriff auf die subject und body Eigenschaften direkt vom zurückgegebenen Objekt.
with MapiMessage.from_file("getting-started.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body : {message.body}")Schritt 5: Konvertieren Sie das MSG in EML
to_email_bytes() konvertiert die geladene Nachricht in das Format RFC 5322. Schreiben Sie das Ergebnis auf a .eml Datei mit der Standardbibliothek.
from pathlib import Path
with MapiMessage.from_file("getting-started.msg") as message:
Path("getting-started.eml").write_bytes(message.to_email_bytes())
print("getting-started.eml written.")Häufige Probleme und Lösungen
ModuleNotFoundError: No module named 'aspose' Das Paket ist nicht in der aktiven Python-Umgebung installiert. pip install aspose-email-foss in der gleichen virtuellen Umgebung, die Sie zum Ausführen Ihres Skriptes verwenden. bestätigen mit pip show aspose-email-foss.
FileNotFoundError Wenn man anruft MapiMessage.from_file() Der Weg, den Sie durchlaufen haben, existiert nicht oder verwendet den falschen Trennschalter für Ihr Betriebssystem. pathlib.Path Um Pisten portabel zu bauen: MapiMessage.from_file(Path("folder") / "file.msg").
MSG Datei wird in Outlook geöffnet, zeigt jedoch kein Thema an MapiMessage.create() akzeptiert das Thema als erstes positionales Argument. Wenn Sie Outlook zeigt die Nachricht als untituliert an. Eine nicht leere Zeile übertragen oder festlegen explizit mit set_property(PropertyId.SUBJECT, "My Subject").
EML Konvertierung erzeugt einen leeren Körper to_email_bytes() benutzt body_html Wenn er aufgeführt ist und wieder zurückfällt, dann body.Bestätigen Sie, dass bei mindestens eine dieser Eigenschaften ist nicht leer, nachdem Sie das MSG mit from_file().
Unicode-Inhalte in Empfängern oder Themen werden gekürzt Pass auf unicode_strings=True Zwei MapiMessage.create() um sicherzustellen, dass String-Eigenschaften sind Sie werden in Unicode (PT_UNICODE) anstelle von ANSI (RT_STRING8) gespeichert.
Häufig gestellte Fragen
Benötigt die A-Mail-Foss Microsoft Office?
Die Bibliothek ist vollständig selbstständig.Es liest und schreibt die binären MSG- und CFB-Formate nativ in Python ohne jegliche Abhängigkeit von Microsoft Office, COM Automation oder Win32 APIs.
Kann ich diese Bibliothek auf Linux oder macOS verwenden?
Ja ja ja. aspose-email-foss ist reines Python und läuft auf jeder Plattform, die Python 3.10 unterstützt oder neuer – einschließlich Windows, macOS, Linux, Docker-Container und serverlose Funktionen.
Ist die Bibliothek für den gewerblichen Gebrauch frei?
Ja. Es wird unter der MIT-Lizenz veröffentlicht. Sie können es für jeden Zweck verwenden, ändern und weiterverbreiten, einschließlich kommerzieller Anwendungen, ohne Lizenzgebühren oder Zuweisungsanforderungen jenseits des Lizenzentextes.
Wie kann ich CC und BCC Empfänger hinzufügen?
Pass auf recipient_type=msg.RECIPIENT_TYPE_CC oder msg.RECIPIENT_TYPE_BCC Als dritte Argumentation zu add_recipient():
message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)Wie kann ich einen MSG in einen anderen einbinden?
benutzen MapiMessage.add_embedded_message_attachment(),Durch das Innere geht MapiMessage Objekt als erstes Argument:
inner = MapiMessage.create("Inner message", "Embedded body.")
outer = MapiMessage.create("Outer message", "See attachment.")
outer.add_embedded_message_attachment(inner, "inner.msg")
outer.save("outer.msg")