Hvordan komme i gang med Aspose.Email FOSS for Python
aspose-email-foss for Python er et gratis, MIT-lisensert bibliotek for å lage, lese og bruke konvertering av Outlook MSG filer og CFB-beholdere – ingen Microsoft Office nødvendig, ingen innfødt Utvidelser, ren Python fra PyPI.
Trinnvis veiledning
Steg 1: Installer pakken
Installasjon fra PyPI med pip:
pip install aspose-email-fossSjekk at installasjonen er lastet riktig:
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")Trinn 2: Importer nødvendige klasser
Importer modulene du trenger for meldingskaping, egenskapsoppgave og formatkonvertering:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdTrinn 3: Opprett en MSG fil
Bruker MapiMessage.create() å bygge en melding med et emne og kropp. Sett sender metadata med PropertyId Legg til mottakere og legg til 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.")Trinn 4: Les filen MSG tilbake
Last ned den lagrede filen ved hjelp av MapiMessage.from_file() som en kontekstleder. Access the subject og body Eiendommer direkte fra det returnerte objektet.
with MapiMessage.from_file("getting-started.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body : {message.body}")Trinn 5: Konverter MSG til EML
to_email_bytes() konverterer den lastede meldingen til RFC 5322 format. Skriv resultatet til a) A .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.")Vanlige problemer og løsninger
ModuleNotFoundError: No module named 'aspose' Pakken er ikke installert i det aktive Python-miljøet. pip install aspose-email-foss i samme virtuelle miljø du bruker til å kjøre skriptet. Bekreft med pip show aspose-email-foss.
FileNotFoundError Når man ringer MapiMessage.from_file() Puten du har passert eksisterer ikke eller bruker feil separator for OS. pathlib.Path For å bygge veier portabel: MapiMessage.from_file(Path("folder") / "file.msg").
MSG fil åpnes i Outlook, men viser ikke emnet MapiMessage.create() aksepterer emnet som det første posisjonsargumentet. Hvis du har gått gjennom Outlook viser meldingen som en tom streng, og sender den til en ikke-tom streng eller angir den som ubestemt. Eksplicit med set_property(PropertyId.SUBJECT, "My Subject").
EML konvertering produserer en tom kropp to_email_bytes() Bruker body_html Hvis det er satt, og faller tilbake til body.Bekreft at i minst én av disse egenskapene er ikke tom etter at MSG har blitt lastet med from_file().
Unicode-innhold i mottakere eller emne er truncated Passet unicode_strings=True To av MapiMessage.create() For å sikre at strenge egenskaper er lagret i Unicode (PT_UNICODE) i stedet for ANSI (pt_STRING8).
Ofte stilte spørsmål
Trenger Microsoft Office-tjenesten din?
Det leser og skriver de binære MSG og CFB-formater nativt i Python uten noen avhengighet av Microsoft Office, COM automatisering eller Win32 API.
Kan jeg bruke dette biblioteket på Linux eller macOS?
Ja til. aspose-email-foss Python er ren og kjører på alle plattformer som støtter Python 3.10 eller nyere – inkludert Windows, macOS, Linux, Docker-beholdere og serverfrie funksjoner.
Er biblioteket gratis for kommersiell bruk?
Ja. Den er utgitt under MIT-lisensen. Du kan bruke, modifisere og redistribuere den til ethvert formål, inkludert kommersielle applikasjoner, uten royalties eller attribusjonskrav utover lisensteksten.
Hvordan legger jeg til CC og BCC-mottakere?
Passet recipient_type=msg.RECIPIENT_TYPE_CC eller msg.RECIPIENT_TYPE_BCC Som den tredje Argumentasjon til add_recipient():
message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)Hvordan kan jeg sette inn en MSG i en annen?
Bruker MapiMessage.add_embedded_message_attachment(),Ved å passere innsiden MapiMessage Argumentet som første 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")