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_issues na kontrolu problémov s dodržiavaním formátu MSG
  • The strict parameter v MapiMessage.from_file() ovláda toleranciu chyby — nastavené na False pre tolerantské parsovanie
  • Všetky údaje príloh sa načítavajú do pamäte počas from_file() — použiť att.data pre 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émPríčinaOprava
CFBError pri načítaníNeplatný súbor CFB/MSGOverte, že súbor je skutočný Outlook MSG
Prázdne telo po načítaníTelo uložené iba v HTMLSkontrolovať msg.body_html namiesto msg.body
Chýbajúci príjemcoviaMSG nemá úložiská príjemcovPrí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ódaPopis
MapiMessageVysokoú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
MapiAttachmentPríloha v správe
MapiRecipientPríjemca v správe
MapiPropertyZáznam vlastnosti MAPI
CFBReaderNízkoúrovňový čítač kontajnera CFB
CFBWriterNízkoúrovňový zapisovač kontajnera CFB
MsgReaderNízkoúrovňový čítač štruktúry MSG
 Slovenčina