Kenmerken en functionaliteiten
Kenmerken en functionaliteiten
Deze pagina behandelt elke belangrijke functie van aspose-email-foss 26.3 met werkende Python voorbeelden.
MSG-bestanden lezen
Laad een MSG-bestand en krijg toegang tot de kern‑eigenschappen:
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}")MSG-bestanden maken
Maak een nieuw bericht vanaf nul:
from aspose.email_foss.msg import MapiMessage
msg = MapiMessage.create("Meeting Notes", "Please find the notes attached.")
msg.save("new_message.msg")Stel onderwerp en inhoud in op een bestaand bericht:
msg.subject = "Updated Subject"
msg.body = "Updated body text"
msg.save("updated.msg")Ontvangers
Voeg ontvangers toe met weergavenamen en typen:
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")Bijlagen
Voeg binaire bestandsbijlagen toe:
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")Integreer een MSG-bericht als een geneste bijlage:
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-eigenschappen
Lees en schrijf MAPI‑eigenschappen op basis van eigenschaps‑ID:
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")Itereer over alle eigenschappen:
for prop in msg.iter_properties():
print(f"Tag: {prop.property_tag:#010x}")E-mailconversie
Converteer tussen MSG (MAPI) en e-mail (RFC 5322) formaten:
# 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")Low-Level CFB-bewerkingen
Lees CFB-containerstructuur 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()Schrijf CFB-documenten:
from aspose.email_foss.msg import MsgWriter
data = msg.to_bytes()
with open("output.msg", "wb") as f:
f.write(data)Tips en best practices
- Altijd aanroepen
msg.close()of gebruik een contextmanager wanneer je klaar bent met lezen om bestands‑handles vrij te geven - Gebruik
msg.validation_issuesom te controleren op MSG‑formaat‑conformiteitsproblemen - De
strictparameter inMapiMessage.from_file()bepaalt de fouttolerantie — stel in opFalsevoor tolerante parsing - Alle bijlage‑gegevens worden in het geheugen geladen tijdens
from_file()— gebruikatt.dataom bytes direct te benaderen;iter_attachments_info()is een handige iterator over de reeds gevulde bijlagenlijst - Gebruik
to_email_string()voor snelle tekstvoorbeelden zonder volledige e-mailobjectconstructie
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
CFBError bij het laden | Geen geldig CFB/MSG-bestand | Controleer of het bestand een echte Outlook MSG is |
| Lege inhoud na laden | Inhoud alleen opgeslagen in HTML | Controleren msg.body_html in plaats van msg.body |
| Ontbrekende ontvangers | MSG heeft geen ontvangeropslag | Ontvangers zijn optioneel in het MSG-formaat; controleer iter_attachments_info() |
FAQ
Welke MSG‑formaatversies worden ondersteund?
De bibliotheek leest en schrijft MSG‑bestanden in CFB v3‑ en v4‑formaat, compatibel met Microsoft Outlook.
Kan ik EML‑bestanden lezen?
Niet rechtstreeks. De bibliotheek verwerkt het MSG-formaat. Gebruik MapiMessage.from_email_message() om te converteren van RFC 5322 EmailMessage objecten.
Wordt thread-safety ondersteund?
Elke MapiMessage en CFBReader instantie is onafhankelijk. Gelijktijdige toegang tot afzonderlijke instanties vanuit verschillende threads is veilig.
API-referentie Samenvatting
| Klasse / Methode | Beschrijving |
|---|---|
MapiMessage | High-level MSG-berichtrepresentatie |
MapiMessage.from_file() | Laad een MSG-bestand |
MapiMessage.create() | Maak een nieuw MSG-bericht |
MapiMessage.save() | Opslaan naar MSG-bestand |
MapiMessage.to_email_message() | Converteren naar EmailMessage (RFC 5322) |
MapiMessage.from_email_message() | Converteren van EmailMessage naar MSG |
MapiMessage.add_recipient() | Voeg een ontvanger toe |
MapiMessage.add_attachment() | Voeg een binaire bijlage toe |
MapiAttachment | Bijlage bij een bericht |
MapiRecipient | Ontvanger van een bericht |
MapiProperty | MAPI-eigenschap invoer |
CFBReader | Low-level CFB-containerlezer |
CFBWriter | Low-level CFB-containerwriter |
MsgReader | Low-level MSG-structuurlezer |