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_issuesfor at tjekke overholdelsesproblemer i MSG-formatet - Den
strictparameter iMapiMessage.from_file()styrer fejltolerance — sæt tilFalsefor lempelig parsing - Al vedhæftningsdata indlæses i hukommelsen under
from_file()— brugatt.datafor 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 | Årsag | Løsning |
|---|---|---|
CFBError ved indlæsning | Ikke en gyldig CFB/MSG-fil | Verificer, at filen er en faktisk Outlook MSG |
| Tom body efter indlæsning | Body gemt kun i HTML | Tjek msg.body_html i stedet for msg.body |
| Manglende modtagere | MSG har ingen modtagerlagre | Modtagere 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 / Metode | Beskrivelse |
|---|---|
MapiMessage | Hø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 |
MapiAttachment | Vedhæftning på en besked |
MapiRecipient | Modtager på en besked |
MapiProperty | MAPI‑egenskabspost |
CFBReader | Lavt niveau CFB-containerlæser |
CFBWriter | Lavt niveau CFB-containerskriver |
MsgReader | Lavt niveau MSG‑strukturlæser |