Indledning
Programmatisk analyse af e-mailmeddelelser er et almindeligt krav til data migration, arkiveringsarbejdsstrømme og overholdelsesværktøjer. Outlook MSG filer bruger Compound File Binary (CFB) containerformat med MAPI egenskaber til at koding af meddelelsesmetadata, krop indhold, modtagere og vedhæftede filer. Arbejde med dette format i Python har traditionelt krævet enten kommercielle biblioteker eller lavt niveau binær manipulation.
Den Europæiske Union aspose-email-foss pakke giver et rent Python, MIT-licenseret bibliotek til at læse, oprette og konvertere Outlook MSG filer. Det udsætter en høj niveau MapiMessage API til fælles opgaver sammen med lavere niveauer MsgReader Biblioteket kræver Python 3.10 eller nyere og har ingen indfødte afhængigheder.
Uanset om du skal udtrække emnelinjen og legemet fra en batch af arkiverede meddelelser, opregne vedhæftninger til indeksering eller konvertere MSG-filer til standard RFC 5322 format, håndterer dette bibliotek binærparsing så du kan fokusere på din applikationslogik.
Hvad der indgår i den
Læse MSG-filer med MapiMessage
Den Europæiske Union MapiMessage Open en fil, få adgang til dens egenskaber og luk den rent med et konteksthåndtering.
from aspose.email_foss import msg
with msg.MapiMessage.from_file("meeting-invite.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body: {message.body[:200]}")
print(f"HTML body available: {message.body_html is not None}")
Den Europæiske Union from_file Metoden læser CFB-containeren, analyserer MAPI-egenskabstrømmene og fylder typede attributter. subject, body, og body_html Properties returnerer dekoderede strenge direkte.
Udvinde modtagere
Hver MSG-fil gemmer modtageroplysninger i dedikerede MAPI-lagre. MapiMessage.recipients Ejendommen returnerer en liste over: MapiRecipient objekter med indtypede felter for visningsnavn, e-mailadresse og modtagertype (TO, CC eller BCC).
from aspose.email_foss import msg
with msg.MapiMessage.from_file("team-update.msg") as message:
for recipient in message.recipients:
print(
f"{recipient.display_name} <{recipient.email_address}> "
f"type={recipient.recipient_type}"
)
Arbejde med vedhæftede filer
Den Europæiske Union iter_attachments_info metodeudbytte MapiAttachment objekter, der giver filnavn, rå byte, MIME-type og valgfri Content-ID for inlinebilleder.
from aspose.email_foss import msg
with msg.MapiMessage.from_file("report.msg") as message:
for att in message.iter_attachments_info():
print(f" {att.filename} ({att.mime_type}, {len(att.data)} bytes)")
if att.content_id:
print(f" inline content-id: {att.content_id}")
Adgang til MAPI-egenskaber
For scenarier, der kræver specifikke MAPI-egenskaber ud over bekvemmelighedsattributterne, skal brugen af get_property_value med en PropertyId Dette giver direkte adgang til alle egenskaber, der er gemt i MSG-filen.
from aspose.email_foss import msg
with msg.MapiMessage.from_file("notification.msg") as message:
sender = message.get_property_value(msg.PropertyId.SENDER_NAME)
email = message.get_property_value(msg.PropertyId.SENDER_EMAIL_ADDRESS)
delivery = message.get_property_value(msg.PropertyId.MESSAGE_DELIVERY_TIME)
print(f"From: {sender} <{email}>")
print(f"Delivered: {delivery}")
Iterering af alle egenskaber
Når du skal undersøge hver egenskab i en meddelelse (for fejlfinding, revision eller migration), er det nødvendigt at kontrollere alle egenskaberne. iter_properties metodeudbytte MapiProperty objekter med fuld tag- og værdiinformation.
from aspose.email_foss import msg
with msg.MapiMessage.from_file("sample.msg") as message:
for prop in message.iter_properties():
print(
f"tag=0x{prop.property_tag:08X} "
f"type=0x{prop.property_type:04X} "
f"value={prop.value!r}"
)
Omdannelse af MSG til EML
Den Europæiske Union to_email_message Metode konverterer et analyseret MSG til en standard Python-program. email.message.EmailMessage Derfra kan du serialisere meddelelsen til RFC 5322 (EML) format ved hjælp af standardbiblioteket.
from aspose.email_foss import msg
with msg.MapiMessage.from_file("archive.msg") as message:
email_message = message.to_email_message()
eml_bytes = email_message.as_bytes()
with open("archive.eml", "wb") as f:
f.write(eml_bytes)
Bemærk, at EML-udgangen bruger Python’s indbyggede email Biblioteket håndterer MSG-til-MAPI- til E-MailMessage konvertering; standardbiblioteriet håndteres RFC 5322 wire format.
Hurtig start
Installer pakken fra PyPI og analyser din første MSG-fil i under 20 linjer:
# Install: pip install aspose-email-foss>=26.3
from aspose.email_foss import msg
# Create a new message
message = msg.MapiMessage.create(
"Project status update",
"Hello team,\n\nPlease review the attached report.\n\nRegards",
)
message.add_recipient("alice@example.com", display_name="Alice")
message.add_attachment("notes.txt", b"meeting notes\n", mime_type="text/plain")
message.save("status-update.msg")
# Read it back and extract data
with msg.MapiMessage.from_file("status-update.msg") as loaded:
print(f"Subject: {loaded.subject}")
print(f"Recipients: {len(loaded.recipients)}")
for att in loaded.iter_attachments_info():
print(f"Attachment: {att.filename} ({len(att.data)} bytes)")
Støttede formater
| Format: | Udvidelse | Læs det. | Skriv ned |
|---|---|---|---|
| Udsigter MSG | .msg | - Ja, jeg gør. | - Ja, jeg gør. |
| Binær sammensat fil | .cfb | - Ja, jeg gør. | - Ja, jeg gør. |
| EML (via omdannelse) | .eml | Ja (via: from_email_message) | Ja (via: to_email_message) |
EML-støtte fungerer ved konvertering: MapiMessage.from_email_message() import fra en Python-model email.message.EmailMessage genstand, og to_email_message() Direkte EML-filparsing er ikke tilvejebragt standardbiblioteket håndterer EMl wire formatet.
Open Source & Licensing
Aspose.Email FOSS for Python is released under the MIT license. You are free to use, modify, and distribute the library in both commercial and non-commercial projects. The full source code is available on GitHub.
Biblioteket er en ren Python-implementering uden kompilerede udvidelser eller indfødte afhængigheder. Det kører på enhver platform, der understøtter Python 3.10 eller nyere.
Hvordan man begynder
Udforsk flere ressourcer til at arbejde med Aspose.Email FOSS for Python:
- Udviklervejledning fuld dokumentation med vejledninger og API-vejledning
- Vidensgrundlag vejledningsartikler og ofte stillede spørgsmål
- API-reference komplet klasse- og metodereference