Hvordan man starter med FOSS til Python
aspose-email-foss Python er et gratis, MIT-licenseret bibliotek til at oprette, læse og bruge. konvertering af Outlook MSG filer og CFB containere – ingen Microsoft Office kræves, ingen indfødte Udvidelser, ren Python fra PyPI.
Step-by-step guide til dig
Trin 1: Installer pakken
Installation fra PyPI med pip:
pip install aspose-email-fossKontroller, at installationen er korrekt indlæst:
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")Trin 2: Import af krævede klasser
Importer de moduler, du har brug for til meddelelsesoprettelse, egenskabsudpegning og formatkonvertering:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdTrin 3: Opret en MSG fil
Brug af MapiMessage.create() at oprette en besked med et emne og en krop. Indstil sendermetadata med PropertyId Tilføj modtagere og vedhæft 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.")Trin 4: Læs filen tilbage
Indlæse den gemte fil ved hjælp af MapiMessage.from_file() Som kontekstmanager. tilgå den subject og body ejendomme direkte fra det returnerede objekt.
with MapiMessage.from_file("getting-started.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body : {message.body}")Trin 5: Konverter MSG til EML
to_email_bytes() konverterer den indlæste meddelelse til RFC 5322 format. Skriv resultatet til a) af .eml Fil 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.")Almindelige problemer og rettelser
ModuleNotFoundError: No module named 'aspose' Pakken er ikke installeret i det aktive Python-miljø. pip install aspose-email-foss i det samme virtuelle miljø, du bruger til at køre dit script. Bekræft med pip show aspose-email-foss.
FileNotFoundError Når man ringer MapiMessage.from_file() Den vej, du har passeret, eksisterer ikke eller bruger den forkerte separator til dit OS. pathlib.Path For at bygge veje portabel: MapiMessage.from_file(Path("folder") / "file.msg").
MSG fil åbnes i Outlook, men viser ikke emnet MapiMessage.create() accepterer emnet som det første positionelle argument. Hvis du har bestået Outlook viser meddelelsen som en tom streng, der ikke er overskrevet. Eksplicit med set_property(PropertyId.SUBJECT, "My Subject").
EML konvertering producerer en tom krop to_email_bytes() Brug af body_html Hvis det er oprettet, og falder tilbage til body.Bekræft, at der på mindst en af disse egenskaber er ikke tom efter indlæsning af MSG med from_file().
Unicode-indholdet i modtagere eller emne er truncated Passet er unicode_strings=True To af MapiMessage.create() For at sikre, at strenge ejendomme er De er gemt i Unicode (PT_UNICODE) i stedet for ANSI (RT_STRING8).
Ofte stillede spørgsmål
Har Microsoft Office-krav til at bruge e-mail?
Det læser og skriver de binære MSG og CFB-formater nativt i Python uden nogen afhængighed af Microsoft Office, COM automatisering eller Win32 API’er.
Kan jeg bruge dette bibliotek på Linux eller macOS?
Ja til. aspose-email-foss Python er ren og kører på enhver platform, der understøtter Python 3.10 eller nyere – herunder Windows, macOS, Linux, Docker-containere og serverløse funktioner.
Er biblioteket gratis til kommerciel brug?
Ja. Den er udgivet under MIT License. Du kan bruge, ændre og omfordele den til ethvert formål, herunder kommercielle applikationer, uden royalties eller attributionskrav ud over licensteksten.
Hvordan tilføjer jeg CC og BCC-modtagere?
Passet er recipient_type=msg.RECIPIENT_TYPE_CC eller msg.RECIPIENT_TYPE_BCC Som den tredje Argumenter til add_recipient():
message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)Hvordan kan jeg indsætte en MSG i en anden?
Brug af MapiMessage.add_embedded_message_attachment(),Går gennem det indre MapiMessage Det første argument er:
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")