Hvordan man starter med FOSS til Python

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-foss

Kontroller, 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, PropertyId

Trin 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")

Se også

 Dansk