Značajke i funkcionalnosti
Značajke i funkcionalnosti
Ova stranica pokriva svaku glavnu značajku aspose-email-foss 26.3 s radnim Python primjerima.
Čitanje MSG datoteka
Učitajte MSG datoteku i pristupite njezinim osnovnim svojstvima:
from aspose.email_foss.msg import MapiMessage
msg = MapiMessage.from_file("message.msg")
print(f"Subject: {msg.subject}")
print(f"Body: {msg.body}")
print(f"HTML Body: {msg.body_html}")
print(f"Message Class: {msg.message_class}")Stvaranje MSG datoteka
Stvorite novu poruku od početka:
from aspose.email_foss.msg import MapiMessage
msg = MapiMessage.create("Meeting Notes", "Please find the notes attached.")
msg.save("new_message.msg")Postavite predmet i tijelo u postojećoj poruci:
msg.subject = "Updated Subject"
msg.body = "Updated body text"
msg.save("updated.msg")Primatelji
Dodajte primatelje s prikaznim imenima i vrstama:
from aspose.email_foss.msg import MapiMessage, RECIPIENT_TYPE_CC
msg = MapiMessage.create("Hello", "Message body")
msg.add_recipient("alice@example.com", display_name="Alice Smith")
msg.add_recipient("bob@example.com", display_name="Bob Jones", recipient_type=RECIPIENT_TYPE_CC)
msg.save("with_recipients.msg")Privitci
Dodajte binarne privitke datoteka:
with open("report.pdf", "rb") as f:
data = f.read()
msg.add_attachment("report.pdf", data, mime_type="application/pdf")
msg.save("with_attachment.msg")Umetnite MSG poruku kao ugniježđeni privitak:
inner = MapiMessage.create("Inner Subject", "Inner body")
msg.add_embedded_message_attachment(inner, filename="embedded.msg", mime_type="application/vnd.ms-outlook")
msg.save("with_embedded.msg")MAPI svojstva
Čitajte i pišite MAPI svojstva po ID‑u svojstva:
from aspose.email_foss.msg import PropertyId
# Read a property
subject = msg.get_property(PropertyId.SUBJECT)
# Set a property
msg.set_property(PropertyId.SUBJECT, "New Subject")Iterirajte kroz sva svojstva:
for prop in msg.iter_properties():
print(f"Tag: {prop.property_tag:#010x}")Konverzija e-pošte
Pretvarajte između MSG (MAPI) i e-pošte (RFC 5322) formata:
# MSG to email string
email_str = msg.to_email_string()
print(email_str[:500])
# MSG to EmailMessage object
email_msg = msg.to_email_message()
# EmailMessage back to MapiMessage
msg2 = MapiMessage.from_email_message(email_msg)
msg2.save("roundtrip.msg")Operacije niskog nivoa CFB
Izravno pročitajte strukturu CFB kontejnera:
from aspose.email_foss.cfb import CFBReader
reader = CFBReader.from_file("message.msg")
print(f"File size: {reader.file_size} bytes")
print(f"Sectors: {reader.fat_sector_count}")
print(f"Entries: {reader.directory_entry_count}")
for entry in reader.iter_storages():
print(f"Storage: {entry}")
for entry in reader.iter_streams():
print(f"Stream: {entry}")
reader.close()Zapišite CFB dokumente:
from aspose.email_foss.msg import MsgWriter
data = msg.to_bytes()
with open("output.msg", "wb") as f:
f.write(data)Savjeti i najbolje prakse
- Uvijek pozovite
msg.close()ili koristite upravitelj kontekstom kada završite s čitanjem kako biste oslobodili rukovatelje datoteka - Koristite
msg.validation_issuesza provjeru problema s usklađenošću MSG formata - The
strictparametar uMapiMessage.from_file()kontrolira toleranciju grešaka — postavite naFalseza popustljivo parsiranje - Svi podaci privitaka učitavaju se u memoriju tijekom
from_file()— koristiteatt.dataza izravan pristup bajtovima;iter_attachments_info()je praktični iterator preko već popunjenog popisa privitaka - Koristite
to_email_string()za brze prikaze teksta bez potpunog stvaranja objekta e‑mail
Uobičajeni problemi
| Problem | Uzrok | Ispravak |
|---|---|---|
CFBError prilikom učitavanja | Nije valjana CFB/MSG datoteka | Provjerite je li datoteka stvarni Outlook MSG |
| Prazno tijelo nakon učitavanja | Tijelo je pohranjeno samo u HTML-u | Provjeri msg.body_html umjesto msg.body |
| Nedostaju primatelji | MSG nema spremišta primatelja | Primatelji su opcionalni u MSG formatu; provjeri iter_attachments_info() |
FAQ
Koje su verzije MSG formata podržane?
Biblioteka čita i zapisuje MSG datoteke u CFB v3 i v4 formatu, kompatibilne s Microsoft Outlookom.
Mogu li čitati EML datoteke?
Ne izravno. Biblioteka obrađuje MSG format. Koristite MapiMessage.from_email_message() za pretvorbu iz RFC 5322 EmailMessage objekte.
Je li podržana sigurnost u višedretvenom okruženju?
Svaki MapiMessage i CFBReader instanca je neovisna. Istovremeni pristup odvojenim instancama iz odvojenih niti je siguran.
Sažetak API referencije
| Klasa / Metoda | Opis |
|---|---|
MapiMessage | Visokorazinski MSG prikaz poruke |
MapiMessage.from_file() | Učitaj MSG datoteku |
MapiMessage.create() | Kreiraj novu MSG poruku |
MapiMessage.save() | Spremi u MSG datoteku |
MapiMessage.to_email_message() | Pretvori u EmailMessage (RFC 5322) |
MapiMessage.from_email_message() | Pretvori iz EmailMessage u MSG |
MapiMessage.add_recipient() | Dodaj primatelja |
MapiMessage.add_attachment() | Dodaj binarni privitak |
MapiAttachment | Privitak na poruku |
MapiRecipient | Primatelj u poruci |
MapiProperty | MAPI unos svojstva |
CFBReader | Niskorazinski čitač CFB kontejnera |
CFBWriter | Niskorazinski pisac CFB kontejnera |
MsgReader | Niskorazinski čitač MSG strukture |