Kako započeti sa Aspose.Email FOSS za Python
aspose-email-foss za Python je besplatna, MIT-licencirana biblioteka za kreiranje, čitanje i konvertovanje Outlook MSG fajlova i CFB kontejnera — nije potreban Microsoft Office, nema nativnih ekstenzija, čisti Python sa PyPI.
Vodič korak po korak
Korak 1: Instalirajte paket
Instalirajte sa PyPI koristeći pip:
pip install aspose-email-fossProverite da je instalacija učitana ispravno:
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")Korak 2: Uvezite potrebne klase
Uvezite module koji su vam potrebni za kreiranje poruka, dodeljivanje svojstava i konverziju formata:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdKorak 3: Kreirajte MSG fajl
Koristite MapiMessage.create() za izgradnju poruke sa temom i telom. Postavite metapodatke pošiljaoca sa PropertyId konstante, dodajte primaoce i priložite fajl.
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: Ponovo pročitajte MSG fajl
Učitajte sačuvani fajl koristeći MapiMessage.from_file() kao menadžer konteksta. Pristupite subject i body svojstvima direktno 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: Konvertujte MSG u EML
to_email_bytes() konvertuje učitanu poruku u RFC 5322 format. Zapišite rezultat u jedan .eml fajl uz standardnu biblioteku.
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.")Uobičajeni problemi i rešenja
ModuleNotFoundError: No module named 'aspose' Paket nije instaliran u aktivnom Python okruženju. Pokrenite pip install aspose-email-foss u istom virtuelnom okruženju koje koristite za pokretanje vašeg skripta. Potvrdite sa pip show aspose-email-foss.
FileNotFoundError prilikom pozivanja MapiMessage.from_file() Putanja koju ste naveli ne postoji ili koristi pogrešan separator za vaš OS. Koristite pathlib.Path za portabilno konstruisanje putanja: MapiMessage.from_file(Path("folder") / "file.msg").
datoteka MSG otvara se u Outlook-u, ali ne prikazuje naslov MapiMessage.create() prihvata naslov kao prvi pozicioni argument. Ako ste prosledili prazan string, Outlook prikazuje poruku kao neimenovanu. Prosledite ne‑prazan string ili ga postavite eksplicitno pomoću set_property(PropertyId.SUBJECT, "My Subject").
EML konverzija proizvodi prazan telo to_email_bytes() koristi body_html ako je postavljeno, i vraća se na body. Potvrdite da na najmanje jedno od ovih svojstava nije prazno nakon učitavanja MSG sa from_file().
Unicode sadržaj u primaocima ili predmetu je skraćen Prođi unicode_strings=True na MapiMessage.create() da bi se osiguralo da su string svojstva su smešten u Unicode (PT_UNICODE) umesto ANSI (PT_STRING8).
Često postavljana pitanja
Da li aspose-email-foss zahteva Microsoft Office?
Ne. Biblioteka je potpuno samostalna. Čita i piše binarne MSG i CFB formate nativno u Python bez ikakvih zavisnosti od Microsoft Office‑a, COM automatizacije ili Win32 API‑ja.
Mogu li koristiti ovu biblioteku na Linuxu ili macOS‑u?
Da. aspose-email-foss je čisti Python i radi na bilo kojoj platformi koja podržava Python 3.10 ili noviji — uključujući Windows, macOS, Linux, Docker kontejnere i serverless funkcije.
Da li je biblioteka besplatna za komercijalnu upotrebu?
Da. Objavljen je pod MIT licencom. Možete ga koristiti, menjati i redistribuirati u bilo koju svrhu, uključujući komercijalne aplikacije, bez tantijema ili zahteva za atribuciju, osim teksta licence.
Kako da dodam CC i BCC primaoce?
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 da ugradim jedan MSG u drugi?
Koristite MapiMessage.add_embedded_message_attachment(), prosleđujući unutrašnji MapiMessage objekat 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")