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_issuespentru a verifica probleme de conformitate ale formatului MSG - The
strictparameter inMapiMessage.from_file()controlează toleranța la erori — setează laFalsepentru parsare permisivă - Toate datele atașamentului sunt încărcate în memorie în timpul
from_file()— folosițiatt.datapentru 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ării | Nu este un fișier CFB/MSG valid | Verificați că fișierul este un MSG Outlook real |
| Corp gol după încărcare | Corpul este stocat doar în HTML | Verifică msg.body_html în loc de msg.body |
| Destinatari lipsă | MSG nu are stocări de destinatari | Destinatarii 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 |
|---|---|
MapiMessage | Reprezentare 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 |
MapiAttachment | Atașament la un mesaj |
MapiRecipient | Destinatar la un mesaj |
MapiProperty | Intrare proprietate MAPI |
CFBReader | Cititor de container CFB la nivel scăzut |
CFBWriter | Scriitor de container CFB la nivel scăzut |
MsgReader | Cititor de structură MSG la nivel scăzut |