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ātsImportēšanaEksportēšana
MSG
CFB

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.


Sākšana