Característiques i funcionalitats

Característiques i funcionalitats

Característiques i funcionalitats

Aquesta pàgina cobreix totes les característiques principals de aspose-email-foss 26.3 amb exemples funcionals de Python.


Lectura de fitxers MSG

Carrega un fitxer MSG i accedeix a les seves propietats principals:

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

Creació de fitxers MSG

Crea un missatge nou des de zero:

from aspose.email_foss.msg import MapiMessage

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

Estableix l’assumpte i el cos en un missatge existent:

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

Destinataris

Afegeix destinataris amb noms per mostrar i tipus:

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

Adjunts

Afegeix adjunts de fitxers binaris:

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

Incrusta un missatge MSG com a adjunt anidat:

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

Propietats MAPI

Llegeix i escriu propietats MAPI per ID de propietat:

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

Itera totes les propietats:

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

Conversió de correu electrònic

Converteix entre formats MSG (MAPI) i correu electrònic (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")

Operacions de CFB de baix nivell

Llegeix directament l’estructura del contenidor CFB:

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

Escriu documents CFB:

from aspose.email_foss.msg import MsgWriter

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

Consells i bones pràctiques

  • Crida sempre msg.close() o utilitza un gestor de context quan hagis acabat de llegir per alliberar els descriptors de fitxer
  • Utilitza msg.validation_issues per comprovar problemes de compliment del format MSG
  • El strict paràmetre a MapiMessage.from_file() controla la tolerància d’errors — establert a False per a un anàlisi indulgent
  • Totes les dades dels fitxers adjunts es carreguen a la memòria durant from_file() — utilitzeu att.data per accedir directament als bytes; iter_attachments_info() és un iterador de conveniència sobre la llista d’adjunts ja poblada
  • Utilitzeu to_email_string() per a previsualitzacions ràpides de text sense la construcció completa de l’objecte de correu electrònic

Problemes comuns

IncidènciaCausaSolució
CFBError en carregarNo és un fitxer CFB/MSG vàlidVerifiqueu que el fitxer sigui un MSG d’Outlook real
Cos buit després de carregarCos emmagatzemat només en HTMLComprova msg.body_html en lloc de msg.body
Falten destinatarisEl MSG no té emmagatzematges de destinatarisEls destinataris són opcionals al format MSG; comprova iter_attachments_info()

FAQ

Quines versions del format MSG són compatibles?

La biblioteca llegeix i escriu fitxers MSG en format CFB v3 i v4, compatible amb Microsoft Outlook.

Puc llegir fitxers EML?

No directament. La biblioteca gestiona el format MSG. Utilitzeu MapiMessage.from_email_message() per convertir des de RFC 5322 EmailMessage objectes.

Es suporta la seguretat de fils?

Cada MapiMessage i CFBReader La instància és independent. L’accés concurrent a instàncies separades des de fils separats és segur.


Resum de la Referència de l’API

Classe / MètodeDescripció
MapiMessageRepresentació de missatge MSG d’alt nivell
MapiMessage.from_file()Carrega un fitxer MSG
MapiMessage.create()Crea un missatge MSG nou
MapiMessage.save()Desa a un fitxer MSG
MapiMessage.to_email_message()Converteix a EmailMessage (RFC 5322)
MapiMessage.from_email_message()Converteix d’EmailMessage a MSG
MapiMessage.add_recipient()Afegeix un destinatari
MapiMessage.add_attachment()Afegeix un adjunt binari
MapiAttachmentAdjunt en un missatge
MapiRecipientDestinatari en un missatge
MapiPropertyEntrada de propietat MAPI
CFBReaderLector de contenidor CFB de baix nivell
CFBWriterEscriptor de contenidor CFB de baix nivell
MsgReaderLector d’estructura MSG de baix nivell
 Català