Kako započeti s FOSS-om za Python

Kako započeti s FOSS-om za Python

aspose-email-foss Python je besplatna, MIT-ovog licencirana knjižnica za stvaranje, čitanje i korištenje. konverzija Outlook datoteke i CFB posude – ne zahtijeva Microsoft Office, nema natjecanje Pure Python iz PyPii.

Vodič korak po korak

Korak 1: Instalirajte paket

Instaliranje iz PyPI-ja s pip:

pip install aspose-email-foss

Provjerite da je instalacija pravilno učita:

from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")

Korak 2: Uvoz potrebnih razreda

Uvozite module potrebne za kreiranje poruka, dodjelu svojstava i konverziju formata:

from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyId

Korak 3: Stvorite datoteku MSG

Koristite MapiMessage.create() - da biste izgradili poruku s predmetom i tijelom. postavite metapodatke pošiljatelja s PropertyId Dodajte primatelje i priložite datoteku.

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

Korak 4: Pročitajte datoteku MSG Nazad

Ukladi sačuvani datoteku pomoću MapiMessage.from_file() kao upravitelj konteksta. pristup subject i body Vlasnici su izravno iz vraćenog objekta.

with MapiMessage.from_file("getting-started.msg") as message:
    print(f"Subject: {message.subject}")
    print(f"Body   : {message.body}")

Korak 5: Pretvorite MSG u EML

to_email_bytes() pretvara naloženu poruku u format RFC 5322. Napišite rezultat na a .eml Prikupljanje datoteka u standardnoj knjižnici.

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

Zajednička pitanja i popravci

ModuleNotFoundError: No module named 'aspose' Paket nije instaliran u aktivnom okruženju Python. pip install aspose-email-foss u istom virtualnom okruženju koje koristite za pokretanje skripta. potvrditi s pip show aspose-email-foss.

FileNotFoundError Kada se poziva MapiMessage.from_file() Put koji ste prošli ne postoji ili koristi pogrešan odvajalac za vaš OS. pathlib.Path Za izgradnju putova portablno: MapiMessage.from_file(Path("folder") / "file.msg").

MSG datoteka se otvara u programu Outlook, ali ne prikazuje predmet MapiMessage.create() primjenjuje se kao prvi pozicijski argument. ako ste prošli prazan niz, Outlook prikazuje poruku kao bez naslova. Prenosite ne-prazni niz ili ga postavite na Eksplicitno s set_property(PropertyId.SUBJECT, "My Subject").

EML konverzija proizvodi prazno tijelo to_email_bytes() Koristi body_html Ako se uspostavi, a ponovno padne na body.Potvrdite da na barem jedan od tih svojstava nije prazan nakon punjenja MSG s from_file().

Unicode sadržaj u primateljima ili predmetu je ukratko Prolaz unicode_strings=True Tvoj MapiMessage.create() Kako bi se osiguralo da su striktna svojstva U tom slučaju, ne možete koristiti Unicode (PT_UNICODE) nego ANSI (RT_STRING8).

Često postavljana pitanja

Je li za isporuku e-pošte potrebno Microsoft Office?

Ne. Knjižnica je potpuno samostalna. čita i piše binarne formate MSG i CFB natpano u Pythonu bez ikakve ovisnosti o Microsoft Officeu, COM automatizaciji ili Win32 API-ima.

Mogu li koristiti ovu knjižnicu na Linuxu ili macOS-u?

Da da. aspose-email-foss Python je čista verzija i radi na bilo kojoj platformi koja podržava Pythona 3.10 ili novijim, uključujući Windows, macOS, Linux, Docker kontejnere i funkcije bez poslužitelja.

Je li knjižnica slobodna za komercijalnu uporabu?

Možete ga koristiti, mijenjati i redistribuirati u bilo koju svrhu, uključujući komercijalne aplikacije, bez naknada za autorske pristojbe ili zahtjeva za dodjelom izvan teksta licence.

Kako dodati CC i BCC primatelje?

Prolaz recipient_type=msg.RECIPIENT_TYPE_CC ili msg.RECIPIENT_TYPE_BCC Kao treći Argument za add_recipient():

message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)

Kako mogu ugraditi jednu MSG unutar druge?

Koristite MapiMessage.add_embedded_message_attachment(),Prolazeći kroz unutarnje MapiMessage Primjer kao prvi 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")

Također

 Hrvatski