Funksjoner og funksjonalitet

Funksjoner og funksjonalitet

Funksjoner og funksjonalitet

Denne siden dekker alle hovedfunksjonene i aspose-email-foss 26.3 med fungerende Python-eksempler.


Lese MSG-filer

Last inn en MSG-fil og få tilgang til dens kjerneegenskaper:

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

Opprette MSG-filer

Opprett en ny melding fra bunnen av:

from aspose.email_foss.msg import MapiMessage

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

Angi emne og innhold i en eksisterende melding:

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

Mottakere

Legg til mottakere med visningsnavn og typer:

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

Vedlegg

Legg til binære filvedlegg:

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

Inkluder en MSG-melding som et innleiret vedlegg:

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-egenskaper

Les og skriv MAPI-egenskaper etter egenskaps-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")

Iterer gjennom alle egenskaper:

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

E-postkonvertering

Konverter mellom MSG (MAPI) og e-post (RFC 5322)-formater:

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

Lavnivå CFB-operasjoner

Les CFB-beholderens struktur direkte:

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

Skriv CFB-dokumenter:

from aspose.email_foss.msg import MsgWriter

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

Tips og beste praksis

  • Kall alltid msg.close() eller bruk en kontekstbehandler når du er ferdig med å lese for å frigjøre filhåndtak
  • Bruk msg.validation_issues for å sjekke for MSG-formatets samsvarsproblemer
  • Den strict parameter i MapiMessage.from_file() kontrollerer feil toleranse — sett til False for lempelig parsing
  • All vedleggsdata lastes inn i minnet under from_file() — bruk att.data for å få tilgang til bytes direkte; iter_attachments_info() er en praktisk iterator over den allerede fylte vedlegglisten
  • Bruk to_email_string() for raske tekstforhåndsvisninger uten full e‑post‑objektkonstruksjon

Vanlige problemer

ProblemÅrsakLøsning
CFBError ved lastingIkke en gyldig CFB/MSG-filBekreft at filen er en faktisk Outlook MSG
Tom kropp etter lastingKropp lagret kun i HTMLSjekk msg.body_html i stedet for msg.body
Mottakere manglerMSG har ingen mottakerlagreMottakere er valgfrie i MSG-formatet; sjekk iter_attachments_info()

FAQ

Hvilke MSG-formatversjoner støttes?

Biblioteket leser og skriver MSG-filer i CFB v3- og v4-format, kompatibelt med Microsoft Outlook.

Kan jeg lese EML-filer?

Ikke direkte. Biblioteket håndterer MSG-formatet. Bruk MapiMessage.from_email_message() for å konvertere fra RFC 5322 EmailMessage objekter.

Er trådsikkerhet støttet?

Hver MapiMessage og CFBReader instans er uavhengig. Samtidig tilgang til separate instanser fra separate tråder er trygt.


API-referansesammendrag

Klasse / MetodeBeskrivelse
MapiMessageHøynivå MSG-meldingsrepresentasjon
MapiMessage.from_file()Last inn en MSG-fil
MapiMessage.create()Opprett en ny MSG-melding
MapiMessage.save()Lagre til MSG-fil
MapiMessage.to_email_message()Konverter til EmailMessage (RFC 5322)
MapiMessage.from_email_message()Konverter fra EmailMessage til MSG
MapiMessage.add_recipient()Legg til en mottaker
MapiMessage.add_attachment()Legg til et binært vedlegg
MapiAttachmentVedlegg på en melding
MapiRecipientMottaker på en melding
MapiPropertyMAPI-egenskapspost
CFBReaderLavnivå CFB-beholderleser
CFBWriterLavnivå CFB-beholderskriver
MsgReaderLavnivå MSG-strukturleser
 Norsk