Funcționalități și Caracteristici

Funcționalități și Caracteristici

Funcționalități și Caracteristici

Această pagină acoperă fiecare caracteristică majoră a aspose-email-foss 26.3 cu exemple Python funcționale.


Citirea fișierelor MSG

Încarcă un fișier MSG și accesează proprietățile sale de bază:

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

Crearea fișierelor MSG

Creează un mesaj nou de la zero:

from aspose.email_foss.msg import MapiMessage

msg = MapiMessage.create("Meeting Notes", "Please find the notes attached.")
msg.save("new_message.msg")

Setează subiectul și corpul unui mesaj existent:

msg.subject = "Updated Subject"
msg.body = "Updated body text"
msg.save("updated.msg")

Destinatari

Adaugă destinatari cu nume afișate și tipuri:

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

Atașamente

Adaugă atașamente de fișiere binare:

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

Încorporează un mesaj MSG ca atașament imbricat:

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

Proprietăți MAPI

Citește și scrie proprietăți MAPI prin ID-ul proprietății:

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

Iterează toate proprietățile:

for prop in msg.iter_properties():
    print(f"Tag: {prop.property_tag:#010x}")

Conversie e-mail

Convertiți între formatele MSG (MAPI) și 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")

Operații CFB de nivel scăzut

Citiți structura containerului CFB direct:

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()

Scrieți documente CFB:

from aspose.email_foss.msg import MsgWriter

data = msg.to_bytes()
with open("output.msg", "wb") as f:
    f.write(data)

Sfaturi și bune practici

  • Apelă întotdeauna msg.close() sau folosește un manager de context când ai terminat de citit pentru a elibera descriptorii de fișiere
  • Folosește msg.validation_issues pentru a verifica probleme de conformitate ale formatului MSG
  • The strict parameter in MapiMessage.from_file() controlează toleranța la erori — setează la False pentru parsare permisivă
  • Toate datele atașamentului sunt încărcate în memorie în timpul from_file() — folosiți att.data pentru a accesa direct octeții; iter_attachments_info() este un iterator convenabil peste lista de atașamente deja populată
  • Utilizați to_email_string() pentru previzualizări rapide de text fără construirea completă a obiectului de e‑mail

Probleme comune

ProblemăCauzăRemediere
CFBError în timpul încărcăriiNu este un fișier CFB/MSG validVerificați că fișierul este un MSG Outlook real
Corp gol după încărcareCorpul este stocat doar în HTMLVerifică msg.body_html în loc de msg.body
Destinatari lipsăMSG nu are stocări de destinatariDestinatarii sunt opționali în formatul MSG; verificați iter_attachments_info()

FAQ

Ce versiuni ale formatului MSG sunt suportate?

Biblioteca citește și scrie fișiere MSG în format CFB v3 și v4, compatibile cu Microsoft Outlook.

Pot citi fișiere EML?

Nu direct. Biblioteca gestionează formatul MSG. Utilizați MapiMessage.from_email_message() pentru a converti din RFC 5322 EmailMessage obiecte.

Este suportată siguranța firelor de execuție?

Fiecare MapiMessage și CFBReader instanța este independentă. Accesul concurent la instanțe separate din fire de execuție diferite este sigur.


Sumar referință API

Clasă / MetodăDescriere
MapiMessageReprezentare MSG la nivel înalt
MapiMessage.from_file()Încarcă un fișier MSG
MapiMessage.create()Creează un mesaj MSG nou
MapiMessage.save()Salvează în fișier MSG
MapiMessage.to_email_message()Convertește la EmailMessage (RFC 5322)
MapiMessage.from_email_message()Convertește de la EmailMessage la MSG
MapiMessage.add_recipient()Adaugă un destinatar
MapiMessage.add_attachment()Adaugă un atașament binar
MapiAttachmentAtașament la un mesaj
MapiRecipientDestinatar la un mesaj
MapiPropertyIntrare proprietate MAPI
CFBReaderCititor de container CFB la nivel scăzut
CFBWriterScriitor de container CFB la nivel scăzut
MsgReaderCititor de structură MSG la nivel scăzut
 Română