Introduksjon
Aspose.Email FOSS for Python is now available on PyPI: a free, MIT-licensed library for creating, reading, and converting Outlook .msg filer helt i Python, uten avhengighet til Microsoft Office eller noen native‑utvidelse. Installer den med pip install aspose-email-foss>=26.3 og begynn å jobbe med MSG‑ og CFB‑containere umiddelbart.
Biblioteket retter seg mot Python 3.10 og nyere. Det implementerer Compound File Binary (CFB)-formatet og MSG-meldingsformatet fra bunnen av, og gir deg deterministisk kontroll over hvordan e‑postmeldinger serialiseres og leses. Siden implementeringen er ren Python, kjører den identisk på Windows, macOS, Linux og i containeriserte miljøer.
Aspose.Email FOSS is designed for developers building email processing pipelines, compliance archival tools, forensic analysis workflows, or any application that needs to create or inspect Outlook-compatible message files without a running Exchange or Outlook installation.
Nøkkelfunksjoner
Opprett MSG‑filer
Bygg Outlook‑kompatible .msg filer fra bunnen av ved hjelp av MapiMessage.create(). Angi standard MAPI‑egenskaper som emne, avsender, leveringstid og visningsfelt via PropertyId enum. Legg til mottakere med add_recipient() og filvedlegg med add_attachment(), og lagre deretter resultatet til disk.
from aspose.email_foss import msg
message = msg.MapiMessage.create(
"Quarterly status update and rollout plan",
"Hello team,\n\nPlease find the latest rollout summary attached.\n\nRegards,\nEngineering",
)
message.set_property(msg.PropertyId.SENDER_NAME, "Build Agent")
message.set_property(msg.PropertyId.SENDER_EMAIL_ADDRESS, "build.agent@example.com")
message.set_property(msg.PropertyId.INTERNET_MESSAGE_ID, "<example-001@example.com>")
message.add_recipient("alice@example.com", display_name="Alice Example")
message.add_recipient("bob@example.com", display_name="Bob Example")
message.add_recipient(
"carol@example.com",
display_name="Carol Example",
recipient_type=msg.RECIPIENT_TYPE_CC,
)
message.add_attachment("hello.txt", b"sample attachment\n", mime_type="text/plain")
message.save("example-message.msg")
Les og konverter MSG til EML
Last inn en eksisterende .msg fil med MapiMessage.from_file() og konverter den til en standard Python EmailMessage objekt via to_email_message(). Derfra serialiseres til EML‑bytes for lagring eller videresending via SMTP.
from aspose.email_foss import msg
with msg.MapiMessage.from_file("example-message.msg") as loaded:
email_message = loaded.to_email_message()
eml_bytes = email_message.as_bytes()
with open("example-message.eml", "wb") as f:
f.write(eml_bytes)
Inspiser MSG‑internt
Bruk MsgReader og dens underliggende CFBReader for å inspisere den binære strukturen i en MSG‑fil. Få tilgang til CFB‑metadata (versjon, sektorstørrelse, antall katalogoppføringer) og iterer over MAPI‑egenskapsoppføringer på binært nivå.
from aspose.email_foss import msg
reader = msg.MsgReader.from_file("example-message.msg")
cfb = reader.cfb_reader
print(f"CFB major_version={cfb.major_version}")
print(f"sector_size={cfb.sector_size}")
print(f"directory_entries={cfb.directory_entry_count}")
for entry in reader.iter_top_level_fixed_length_properties():
tag = entry.property_tag
print(f"tag=0x{tag:08X} flags=0x{entry.flags:08X} value={entry.value.hex()}")
reader.close()
Lavnivå CFB‑tilgang
Les og traverser enhver Compound File Binary-beholder ved hjelp av CFBReader. List opp lagringer og strømmer, løs opp stier etter navn, og hent ut rå strømmedata for tilpasset behandling.
from aspose.email_foss.cfb import CFBReader
reader = CFBReader.from_file("example-message.msg")
for entry in reader.iter_storages():
print(f"Storage: {entry.name}")
for entry in reader.iter_streams():
data = reader.get_stream_data(entry.stream_id)
print(f"Stream: {entry.name} size={len(data)}")
reader.close()
Rask start
Installer biblioteket og opprett din første MSG‑fil på under ti linjer:
pip install aspose-email-foss>=26.3
from aspose.email_foss import msg
message = msg.MapiMessage.create("Hello from Python", "This is a test message.")
message.set_property(msg.PropertyId.SENDER_EMAIL_ADDRESS, "sender@example.com")
message.add_recipient("recipient@example.com", display_name="Recipient")
message.save("hello.msg")
with msg.MapiMessage.from_file("hello.msg") as loaded:
eml = loaded.to_email_message()
print(eml["Subject"])
Støttede formater
| Format | Import | Eksport |
|---|---|---|
| MSG | Ja | Ja |
| CFB | Ja | Ja |
Åpen kilde og lisensiering
Aspose.Email FOSS for Python is released under the MIT License. Du kan bruke den i personlige, interne og kommersielle prosjekter uten restriksjon. Kildekoden er tilgjengelig på GitHub.