Hur man börjar med Aspose.Email FOSS för Python
aspose-email-foss för Python är en gratis, MIT-licensierad bibliotek för att skapa, läsa och konvertera Outlook MSG-filer och CFB-behållare – ingen Microsoft Office krävs, ingen native Extensioner, ren Python från PyPI.
Steg för steg guide
Steg 1: Installera paketet
Installera från PyPI med pip:
pip install aspose-email-fossKontrollera installationen laddas korrekt:
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")Steg 2: Import nödvändiga klasser
Importera de moduler du behöver för meddelande skapelse, egenskap tilldelning och formatkonvertering:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdSteg 3: Skapa en MSG-fil
Användning MapiMessage.create() att bygga ett meddelande med en ämne och kropp. Ställ in avsändarmetadata med PropertyId konstant, lägga till mottagare och bifoga en fil.
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.")Steg 4: Läs MSG-filen tillbaka
Ladda ner den spara filen med hjälp av MapiMessage.from_file() som en sammanhangsledare. tillgång till subject och body äganderätt direkt från det återlämnade objektet.
with MapiMessage.from_file("getting-started.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body : {message.body}")Steg 5: Konvertera MSG till EML
to_email_bytes() konverterar den laddade meddelandet till RFC 5322 format. Skriv resultatet till a a .eml filer med standardbiblioteket.
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.")Vanliga problem och fixar
ModuleNotFoundError: No module named 'aspose' Paketet är inte installerat i den aktiva Python-miljön. pip install aspose-email-foss i samma virtuella miljö du använder för att köra ditt skript. bekräfta med pip show aspose-email-foss.
FileNotFoundError När ringer MapiMessage.from_file() Vägen du passerade finns inte eller använder fel separator för din OS. pathlib.Path Att bygga vägar portable: MapiMessage.from_file(Path("folder") / "file.msg").
MSG-filen öppnas i Outlook men visar inte ämnet MapiMessage.create() accepterar ämnet som det första positionella argumentet. om du passerade en tom sträng, Outlook visar meddelandet som okänt. passera ett icke-vakt sträcka eller ställa in det uttryckligen med set_property(PropertyId.SUBJECT, "My Subject").
EML-konversion ger en tom kropp to_email_bytes() Användning body_html om det ställs och faller tillbaka till body.bekräfta att vid minst en av dessa egenskaper är icke-vakt efter att ha laddat MSG med from_file().
Unicode-innehåll i mottagare eller ämne är trunkad Passar pass unicode_strings=True till MapiMessage.create() För att säkerställa att strängegenskaperna är lagras i Unicode (PT_UNICODE) istället för ANSI ( PT_STRING8).
Ofta ställda frågor
Behöver aspose-email-foss Microsoft Office?
Det läser och skriver binära MSG- och CFB-format nativt i Python utan någon beroende av Microsoft Office, COM automatisering eller Win32 APIs.
Kan jag använda den här biblioteket på Linux eller macOS?
Ja ja . aspose-email-foss är ren Python och körs på någon plattform som stöder Python 3.10 eller senare – inklusive Windows, macOS, Linux, Docker-behållare och servrarfria funktioner.
Är biblioteket gratis för kommersiellt bruk?
Du kan använda, modifiera och omfördela den för något ändamål, inklusive kommersiella ansökningar, utan royalty eller tilldelningsbehov utöver licenstexten.
Hur lägger jag till CC och BCC mottagare?
Passar pass recipient_type=msg.RECIPIENT_TYPE_CC eller msg.RECIPIENT_TYPE_BCC Som den tredje Argument för att add_recipient():
message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)Hur kan jag infoga en MSG i den andra?
Användning MapiMessage.add_embedded_message_attachment(),genom att passera inre MapiMessage argument som första argumentet:
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")