Kenmerken en functionaliteiten

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_issues om te controleren op MSG‑formaat‑conformiteitsproblemen
  • De strict parameter in MapiMessage.from_file() bepaalt de fouttolerantie — stel in op False voor tolerante parsing
  • Alle bijlage‑gegevens worden in het geheugen geladen tijdens from_file() — gebruik att.data om 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

ProbleemOorzaakOplossing
CFBError bij het ladenGeen geldig CFB/MSG-bestandControleer of het bestand een echte Outlook MSG is
Lege inhoud na ladenInhoud alleen opgeslagen in HTMLControleren msg.body_html in plaats van msg.body
Ontbrekende ontvangersMSG heeft geen ontvangeropslagOntvangers 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 / MethodeBeschrijving
MapiMessageHigh-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
MapiAttachmentBijlage bij een bericht
MapiRecipientOntvanger van een bericht
MapiPropertyMAPI-eigenschap invoer
CFBReaderLow-level CFB-containerlezer
CFBWriterLow-level CFB-containerwriter
MsgReaderLow-level MSG-structuurlezer
 Nederlands