Bevezetés
Az Aspose.Email FOSS for Python most már elérhető a PyPI-n: egy ingyenes, MIT licencű könyvtár, amely Outlook .msg fájlok létrehozására, olvasására és konvertálására szolgál teljesen Pythonban, Microsoft Office vagy bármilyen natív kiterjesztés függősége nélkül. Telepítsd pip install aspose-email-foss>=26.3 segítségével, és azonnal kezdj el dolgozni az MSG és CFB konténerekkel.
A könyvtár a Python 3.10‑es és újabb verziókra céloz. Megvalósítja a Compound File Binary (CFB) formátumot és az MSG üzenetformátumot a semmiből, lehetővé téve, hogy determinisztikusan szabályozza az e‑mail üzenetek sorosítását és olvasását. Mivel a megvalósítás tisztán Pythonban íródott, azonos módon fut Windows, macOS, Linux és konténerizált környezetek esetén is.
Aspose.Email FOSS fejlesztők számára készült, akik e‑mail feldolgozó csővezetékeket, megfelelőségi archiválási eszközöket, kriminalisztikai elemzési munkafolyamatokat vagy bármilyen alkalmazást építenek, amelynek szüksége van Outlook-kompatibilis üzenetfájlok létrehozására vagy ellenőrzésére egy futó Exchange vagy Outlook telepítés nélkül.
Főbb jellemzők
MSG fájlok létrehozása
Építs Outlook-kompatibilis .msg fájlokat a semmiből a MapiMessage.create() használatával. Állíts be szabványos MAPI tulajdonságokat, mint a tárgy, feladó, kézbesítési idő és megjelenítési mezők a PropertyId felsoroláson keresztül. Adj hozzá címzetteket a add_recipient()‑vel és fájlcsatolmányokat a add_attachment()‑vel, majd mentsd el az eredményt a lemezre.
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")
MSG beolvasása és konvertálása EML-re
Töltsön be egy meglévő .msg fájlt MapiMessage.from_file()-vel, és konvertálja standard Python EmailMessage objektummá to_email_message()-on keresztül. Innen sorosítsa EML bájtokká tárolás vagy SMTP-n keresztüli továbbítás céljából.
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)
MSG belső részeinek vizsgálata
Használja a MsgReader-t és az alatta lévő CFBReader-t az MSG fájl bináris struktúrájának vizsgálatához. Hozzáférés a CFB metaadatokhoz (verzió, szektor méret, könyvtárbejegyzés száma) és iterálás a MAPI tulajdonságbejegyzéseken bináris szinten.
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()
Alacsony szintű CFB hozzáférés
Olvassa be és járja be bármely Compound File Binary tárolót a CFBReader használatával. Sorolja fel a tárolókat és adatfolyamokat, oldja fel az útvonalakat név szerint, és nyerje ki a nyers adatfolyam-adatokat egyedi feldolgozáshoz.
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()
Gyors kezdés
Telepítsd a könyvtárat, és hozz létre egy MSG fájlt tíz sor alatt:
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"])
Támogatott formátumok
| Formátum | Import | Export |
|---|---|---|
| MSG | Igen | Igen |
| CFB | Igen | Igen |
Nyílt forráskód és licencelés
Az Aspose.Email FOSS for Python a MIT License alatt kerül kiadásra. Személyes, belső és kereskedelmi projektekben korlátozás nélkül használhatja. A forráskód elérhető a GitHub oldalon.