Įvadas
Aspose.Email FOSS for Python is now available on PyPI: a free, MIT-licensed library for creating, reading, and converting Outlook .msg failus visiškai Python, be priklausomybės nuo Microsoft Office ar bet kokio natūralaus plėtimo. Įdiekite jį su pip install aspose-email-foss>=26.3 ir iš karto pradėkite dirbti su MSG ir CFB konteineriais.
Biblioteka skirta Python 3.10 ir vėlesnėms versijoms. Ji įgyvendina Compound File Binary (CFB) formatą ir MSG žinutės formatą nuo nulio, suteikdama jums deterministinę kontrolę, kaip el. laiškų žinutės yra serializuojamos ir skaitomos. Kadangi įgyvendinimas yra gryna Python, jis veikia identiškai Windows, macOS, Linux ir konteinerizuotose aplinkose.
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.
Pagrindinės funkcijos
Kurti MSG failus
Kurti Outlook suderinamus .msg failus nuo nulio naudojant MapiMessage.create(). Nustatykite standartines MAPI savybes, tokias kaip tema, siuntėjas, pristatymo laikas ir rodymo laukai per PropertyId enum. Pridėkite gavėjus su add_recipient() ir failų priedus su add_attachment(), tada įrašykite rezultatą į 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")
Skaityti ir konvertuoti MSG į EML
Įkelkite esamą .msg failą su MapiMessage.from_file() ir konvertuokite jį į standartinį Python EmailMessage objektą per to_email_message(). Nuo ten serializuokite į EML baitus saugojimui arba persiuntimui per 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)
Tikrinti MSG vidinę struktūrą
Naudokite MsgReader ir jo pagrindinį CFBReader norint ištirti MSG failo binarinę struktūrą. Pasiekite CFB metaduomenis (versija, sektoriaus dydis, katalogo įrašų skaičius) ir iteruokite per MAPI savybių įrašus binariniu lygiu.
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()
Žemas lygis CFB prieiga
Skaityti ir naršyti bet kurį Compound File Binary konteinerį naudojant CFBReader. Išvardinkite saugyklas ir srautus, išspręskite kelius pagal pavadinimą ir išgaukite neapdorotus srauto duomenis tinkamam apdorojimui.
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()
Greitas pradžia
Įdiekite biblioteką ir sukurkite savo pirmąjį MSG failą per mažiau nei dešimt eilučių:
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"])
Palaikomi formatai
| Formatas | Importuoti | Eksportuoti |
|---|---|---|
| MSG | Taip | Taip |
| CFB | Taip | Taip |
Atviro kodo ir licencijavimas
Aspose.Email FOSS for Python is released under the MIT License. Galite naudoti jį asmeniniuose, vidiniuose ir komerciniuose projektuose be apribojimų. Šaltinio kodas yra prieinamas GitHub.