Kako započeti sa Aspose.Email FOSS za Python

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

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

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

Vidi takođe

 Српски