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-fossProvjerite 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, PropertyIdKorak 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")