Funkcie a vlastnosti
Funkcie a vlastnosti
Táto stránka pokrýva každú hlavnú funkciu. aspose-email-foss 26.3 s funkčnými Python príkladmi.
Čítanie súborov MSG
Načítajte súbor MSG a získajte prístup k jeho základným vlastnostiam:
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}")Vytváranie súborov MSG
Vytvorte novú správu od začiatku:
from aspose.email_foss.msg import MapiMessage
msg = MapiMessage.create("Meeting Notes", "Please find the notes attached.")
msg.save("new_message.msg")Nastavte predmet a telo existujúcej správy:
msg.subject = "Updated Subject"
msg.body = "Updated body text"
msg.save("updated.msg")Príjemcovia
Pridajte príjemcov s zobrazovanými menami a typmi:
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")Prílohy
Pridajte binárne prílohy súborov:
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")Vložte správu MSG ako vnorenú prílohu:
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 vlastnosti
Čítajte a zapisujte MAPI vlastnosti podľa ID vlastnosti:
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")Iterujte všetky vlastnosti:
for prop in msg.iter_properties():
print(f"Tag: {prop.property_tag:#010x}")Konverzia e‑mailov
Previesť medzi formátmi MSG (MAPI) a e‑mail (RFC 5322):
# 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")Operácie na nízkej úrovni s CFB
Čítať štruktúru kontajnera CFB priamo:
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()Zapísať dokumenty CFB:
from aspose.email_foss.msg import MsgWriter
data = msg.to_bytes()
with open("output.msg", "wb") as f:
f.write(data)Tipy a osvedčené postupy
- Vždy volajte
msg.close()alebo použite kontextový manažér po dokončení čítania na uvoľnenie súborových popisovačov - Použiť
msg.validation_issuesna kontrolu problémov s dodržiavaním formátu MSG - The
strictparameter vMapiMessage.from_file()ovláda toleranciu chyby — nastavené naFalsepre tolerantské parsovanie - Všetky údaje príloh sa načítavajú do pamäte počas
from_file()— použiťatt.datapre priamy prístup k bajtom;iter_attachments_info()je pohodlný iterátor nad už naplneným zoznamom príloh - Použiť
to_email_string()pre rýchle náhľady textu bez úplnej konštrukcie objektu e‑mail
Bežné problémy
| Problém | Príčina | Oprava |
|---|---|---|
CFBError pri načítaní | Neplatný súbor CFB/MSG | Overte, že súbor je skutočný Outlook MSG |
| Prázdne telo po načítaní | Telo uložené iba v HTML | Skontrolovať msg.body_html namiesto msg.body |
| Chýbajúci príjemcovia | MSG nemá úložiská príjemcov | Príjemcovia sú v MSG formáte voliteľní; skontrolujte iter_attachments_info() |
FAQ
Aké verzie formátu MSG sú podporované?
Knižnica číta a zapisuje súbory MSG vo formáte CFB v3 a v4, kompatibilné s Microsoft Outlook.
Môžem čítať súbory EML?
Nie priamo. Knižnica spracováva formát MSG. Použite MapiMessage.from_email_message() na konverziu z RFC 5322 EmailMessage objekty.
Je podpora pre bezpečnosť vlákien?
Každý MapiMessage a CFBReader inštancia je nezávislá. Súbežný prístup k samostatným inštanciám z rôznych vlákien je bezpečný.
Zhrnutie referencie API
| Trieda / Metóda | Popis |
|---|---|
MapiMessage | Vysokoúrovňová reprezentácia správy MSG |
MapiMessage.from_file() | Načítať súbor MSG |
MapiMessage.create() | Vytvorte novú správu MSG |
MapiMessage.save() | Uložte do súboru MSG |
MapiMessage.to_email_message() | Previesť na EmailMessage (RFC 5322) |
MapiMessage.from_email_message() | Previesť z EmailMessage na MSG |
MapiMessage.add_recipient() | Pridať príjemcu |
MapiMessage.add_attachment() | Pridať binárnu prílohu |
MapiAttachment | Príloha v správe |
MapiRecipient | Príjemca v správe |
MapiProperty | Záznam vlastnosti MAPI |
CFBReader | Nízkoúrovňový čítač kontajnera CFB |
CFBWriter | Nízkoúrovňový zapisovač kontajnera CFB |
MsgReader | Nízkoúrovňový čítač štruktúry MSG |