Funktioner og funktionaliteter

Funktioner og funktionaliteter

Funktioner og funktionaliteter

Denne side dækker alle væsentlige funktioner i aspose-email-foss 26.3 med fungerende Python-eksempler.


Læsning af MSG-filer

Indlæs en MSG-fil og få adgang til dens kerneegenskaber:

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

Oprettelse af MSG-filer

Opret en ny besked fra bunden:

from aspose.email_foss.msg import MapiMessage

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

Angiv emne og brødtekst på en eksisterende besked:

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

Modtagere

Tilføj modtagere med visningsnavne 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")

Vedhæftede filer

Tilføj binære filvedhæftninger:

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

Indlejr en MSG-besked som en indlejret vedhæftning:

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

Læs og skriv MAPI-egenskaber efter egenskabs-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 over alle egenskaber:

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

E-mailkonvertering

Konverter mellem MSG (MAPI) og e-mail (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")

Lavniveau CFB-operationer

Læs CFB-containerstruktur 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 bedste praksis

  • Kald altid msg.close() eller brug en kontekstmanager, når du er færdig med at læse, for at frigive filhåndtag
  • Brug msg.validation_issues for at tjekke overholdelsesproblemer i MSG-formatet
  • Den strict parameter i MapiMessage.from_file() styrer fejltolerance — sæt til False for lempelig parsing
  • Al vedhæftningsdata indlæses i hukommelsen under from_file() — brug att.data for at få direkte adgang til bytes; iter_attachments_info() er en bekvem iterator over den allerede udfyldte vedhæftningsliste
  • Brug to_email_string() til hurtige tekstforhåndsvisninger uden fuld e‑mail‑objektkonstruktion

Almindelige problemer

ProblemÅrsagLøsning
CFBError ved indlæsningIkke en gyldig CFB/MSG-filVerificer, at filen er en faktisk Outlook MSG
Tom body efter indlæsningBody gemt kun i HTMLTjek msg.body_html i stedet for msg.body
Manglende modtagereMSG har ingen modtagerlagreModtagere er valgfrie i MSG-format; tjek iter_attachments_info()

FAQ

Hvilke MSG-formatversioner understøttes?

Biblioteket læser og skriver MSG-filer i CFB v3‑ og v4‑format, kompatibelt med Microsoft Outlook.

Kan jeg læse EML-filer?

Ikke direkte. Biblioteket håndterer MSG-format. Brug MapiMessage.from_email_message() til at konvertere fra RFC 5322 EmailMessage objekter.

Understøttes trådsikkerhed?

Hver MapiMessage og CFBReader instance er uafhængig. Samtidig adgang til separate instanser fra separate tråde er sikker.


API-referencens oversigt

Klasse / MetodeBeskrivelse
MapiMessageHøj‑niveau MSG‑beskedrepræsentation
MapiMessage.from_file()Indlæs en MSG-fil
MapiMessage.create()Opret en ny MSG-besked
MapiMessage.save()Gem til MSG-fil
MapiMessage.to_email_message()Konverter til EmailMessage (RFC 5322)
MapiMessage.from_email_message()Konverter fra EmailMessage til MSG
MapiMessage.add_recipient()Tilføj en modtager
MapiMessage.add_attachment()Tilføj en binær vedhæftning
MapiAttachmentVedhæftning på en besked
MapiRecipientModtager på en besked
MapiPropertyMAPI‑egenskabspost
CFBReaderLavt niveau CFB-containerlæser
CFBWriterLavt niveau CFB-containerskriver
MsgReaderLavt niveau MSG‑strukturlæser
 Dansk