Ievads
Aspose.Email FOSS for Python tagad ir pieejams PyPI: bezmaksas, MIT-licencēta bibliotēka, kas ļauj Python pilnīgi izveidot, lasīt un konvertēt Outlook .msg failus, bez atkarības no Microsoft Office vai jebkāda vietējā paplašinājuma. Instalējiet to ar pip install aspose-email-foss>=26.3 un uzreiz sāciet strādāt ar MSG un CFB konteineriem.
Bibliotēka ir paredzēta Python 3.10 un jaunākām versijām. Tā īsteno Compound File Binary (CFB) formātu un MSG ziņojumu formātu no nulles, sniedzot jums deterministisku kontroli pār to, kā e‑pasta ziņojumi tiek serializēti un nolasīti. Tā kā īstenojums ir tīri Python, tas darbojas identiski Windows, macOS, Linux un konteinerizētās vidēs.
Aspose.Email FOSS ir paredzēts izstrādātājiem, kas veido e-pasta apstrādes cauruļvadu, atbilstības arhivēšanas rīkus, tiesu medicīnas analīzes darba plūsmas vai jebkuru lietojumprogrammu, kurai jāizveido vai jāizpēta Outlook‑savietojami ziņojumu faili bez darbināšanas Exchange vai Outlook instalācijas.
Galvenās funkcijas
Izveidot MSG failus
Izveidojiet Outlook‑savietojamus .msg failus no nulles, izmantojot MapiMessage.create(). Iestatiet standarta MAPI īpašības, piemēram, tematu, sūtītāju, piegādes laiku un attēlošanas laukus, caur PropertyId enumerāciju. Pievienojiet saņēmējus ar add_recipient() un failu pievienojumus ar add_attachment(), pēc tam saglabājiet rezultātu 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")
Nolasīt un konvertēt MSG uz EML
Ielādējiet esošu .msg failu ar MapiMessage.from_file() un pārvērtiet to par standarta Python EmailMessage objektu, izmantojot to_email_message(). No turienes serializējiet uz EML baitiem, lai saglabātu vai pārsūtītu caur 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)
Izpētīt MSG iekšējo struktūru
Lietojiet MsgReader un tā pamata CFBReader, lai pārbaudītu MSG faila bināro struktūru. Piekļūstiet CFB metadatiem (versija, sektora lielums, direktorija ierakstu skaits) un iterējiet pāri MAPI īpašību ierakstiem binārajā līmenī.
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()
Zema līmeņa CFB piekļuve
Lasiet un pārlūkojiet jebkuru Compound File Binary konteineru, izmantojot CFBReader. Uzskaitiet glabāšanas vietas un plūsmas, atrisiniet ceļus pēc nosaukuma un izvelciet neapstrādātos plūsmas datus pielāgotai apstrādei.
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()
Ātrais sākums
Instalējiet bibliotēku un izveidojiet savu pirmo MSG failu mazāk nekā desmit rindās:
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"])
Atbalstītie formāti
| Formāts | Importēšana | Eksportēšana |
|---|---|---|
| MSG | Jā | Jā |
| CFB | Jā | Jā |
Atvērtā pirmkods un licencēšana
Aspose.Email FOSS for Python ir izlaists zem MIT License. Jūs varat to izmantot personīgajos, iekšējos un komerciālos projektos bez ierobežojumiem. Avota kods ir pieejams vietnē GitHub.