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_issuesper comprovar problemes de compliment del format MSG - El
strictparàmetre aMapiMessage.from_file()controla la tolerància d’errors — establert aFalseper a un anàlisi indulgent - Totes les dades dels fitxers adjunts es carreguen a la memòria durant
from_file()— utilitzeuatt.dataper 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ència | Causa | Solució |
|---|---|---|
CFBError en carregar | No és un fitxer CFB/MSG vàlid | Verifiqueu que el fitxer sigui un MSG d’Outlook real |
| Cos buit després de carregar | Cos emmagatzemat només en HTML | Comprova msg.body_html en lloc de msg.body |
| Falten destinataris | El MSG no té emmagatzematges de destinataris | Els 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ètode | Descripció |
|---|---|
MapiMessage | Representació 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 |
MapiAttachment | Adjunt en un missatge |
MapiRecipient | Destinatari en un missatge |
MapiProperty | Entrada de propietat MAPI |
CFBReader | Lector de contenidor CFB de baix nivell |
CFBWriter | Escriptor de contenidor CFB de baix nivell |
MsgReader | Lector d’estructura MSG de baix nivell |