Cum să începeți cu Aspose.Email FOSS pentru Python
aspose-email-foss Python este o bibliotecă liberă, licențiată de MIT pentru a crea, citi și utiliza. conversia fișierelor Outlook MSG și a containerelor CFB – nu este necesar Microsoft Office, nici un nativ Extensie Python din PyPI.
Ghid pas cu pas
Pasul 1: Instalați pachetul
Instalarea din PyPI cu pip:
pip install aspose-email-fossVerificați că instalarea este corectă:
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")Pasul 2: Importul de clase necesare
Importati modulele de care aveti nevoie pentru crearea mesajelor, atribuirea proprietatii si conversia formatului:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdPasul 3: Creați un fișier
folosesc MapiMessage.create() pentru a crea un mesaj cu subiect și corp. Setarea metadatelor de trimitere cu PropertyId adăugați destinatari și atașați un fișier.
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.")Pasul 4: Citiți fișierul MSG Înapoi
Încărcați fișierul salvat utilizând MapiMessage.from_file() ca manager de context. Accesarea la subject şi body proprietăţi direct din obiectul returnat.
with MapiMessage.from_file("getting-started.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body : {message.body}")Pasul 5: Convertiți MSG în EML
to_email_bytes() converteşte mesajul încărcat în format RFC 5322. Scrie rezultatul la a .eml fişier cu biblioteca standard.
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.")Probleme comune și soluții
ModuleNotFoundError: No module named 'aspose' Pachetul nu este instalat în mediul activ Python. pip install aspose-email-foss în acelaşi mediu virtual pe care îl utilizaţi pentru a rula scriptul. pip show aspose-email-foss.
FileNotFoundError Când sună MapiMessage.from_file() Calea pe care ați trecut-o nu există sau utilizează separatorul greșit pentru sistemul de operare. pathlib.Path Pentru a construi căi portabile: MapiMessage.from_file(Path("folder") / "file.msg").
Fișierul MSG se deschide în Outlook, dar nu afișează subiectul MapiMessage.create() acceptă subiectul ca prim argument poziţional. dacă aţi trecut de un șir gol, Outlook afișează mesajul ca fiind fără titlu. explicit cu set_property(PropertyId.SUBJECT, "My Subject").
EML conversie produce un corp gol to_email_bytes() utilizează body_html Dacă se întoarce, şi cade înapoi la body.Confirmaţi că la cel puţin una dintre aceste proprietăţi nu este goală după încărcarea MSG cu from_file().
Conținutul Unicode în destinatari sau subiecte este tăiat Pasăre unicode_strings=True două MapiMessage.create() Pentru a asigura proprietățile stricte sunt Unicode (PT_UNICODE) în loc de ANSI (pt_STRING8).
Întrebări frecvente
Este necesar pentru a aspose-email-foss Microsoft Office?
Biblioteca este complet autosuficientă. citeste și scrie formatele binare MSG și CFB nativ în Python fără dependență de Microsoft Office, COM automation sau Win32 API-uri.
Pot folosi această bibliotecă pe Linux sau macOS?
Da da . aspose-email-foss este pură Python și rulează pe orice platformă care acceptă 3.10 Python sau mai târziu, inclusiv Windows, macOS, Linux, containere Docker și funcții fără server.
Este biblioteca liberă pentru utilizare comercială?
Este eliberat sub Licența MIT. Puteți să-l utilizați, modificați și redistribuiți în orice scop, inclusiv aplicații comerciale, fără taxe de autor sau cerințe de atribuire dincolo de textul licenței.
Cum pot adăuga destinatarii CC și BCC?
Pasăre recipient_type=msg.RECIPIENT_TYPE_CC sau msg.RECIPIENT_TYPE_BCC Ca al treilea Argumentul este add_recipient():
message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)Cum pot să încorporez unul în interiorul altuia?
folosesc MapiMessage.add_embedded_message_attachment(),trecând prin interiorul MapiMessage Obiectul ca prim 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")