Giriş

Aspose.Email FOSS for Python is now available on PyPI: a free, MIT-licensed library for creating, reading, and converting Outlook .msg Python içinde tamamen dosyalar, Microsoft Office’e veya herhangi bir yerel uzantıya bağımlı olmadan. Şunu kullanarak kurun pip install aspose-email-foss>=26.3 ve MSG ve CFB konteynerleriyle hemen çalışmaya başlayın.

Kütüphane Python 3.10 ve üzerini hedefler. Compound File Binary (CFB) formatını ve MSG mesaj formatını sıfırdan uygular, e-posta mesajlarının nasıl serileştirileceği ve okunacağı üzerinde deterministik kontrol sağlar. Uygulama saf Python olduğu için Windows, macOS, Linux ve konteynerleştirilmiş ortamlarda aynı şekilde çalışır.

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.


Temel Özellikler

MSG Dosyaları Oluşturma

Outlook uyumlu .msg dosyaları sıfırdan kullanarak MapiMessage.create(). Konu, gönderici, teslim zamanı ve görüntü alanları gibi standart MAPI özelliklerini şunun aracılığıyla ayarlayın PropertyId enum. Alıcıları şununla ekleyin add_recipient() ve dosya eklerini şununla ekleyin add_attachment(), ardından sonucu diske kaydedin.

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’yi Okuma ve EML’ye Dönüştürme

Mevcut bir .msg dosyayı şununla MapiMessage.from_file() ve bunu standart bir Python’a dönüştürün EmailMessage nesnesi olarak şunun aracılığıyla to_email_message(). Buradan, depolama veya SMTP üzerinden yönlendirme için EML baytlarına serileştirin.

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 İç Yapısını İnceleme

Kullanın MsgReader ve onun temel CFBReader bir MSG dosyasının ikili yapısını incelemek için. CFB meta verilerine (sürüm, sektör boyutu, dizin girişi sayısı) erişin ve ikili seviyede MAPI özellik girişleri üzerinde yineleme yapın.

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()

Düşük Seviyeli CFB Erişimi

Herhangi bir Compound File Binary konteynerini kullanarak okuyun ve dolaşın CFBReader. Depolamaları ve akışları listeleyin, yolları isimle çözün ve özel işleme için ham akış verilerini çıkarın.

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()

Hızlı Başlangıç

Kütüphaneyi kurun ve on satırdan az bir sürede ilk MSG dosyanızı oluşturun:

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"])

Desteklenen Formatlar

Biçimİçe AktarDışa Aktar
MSGEvetEvet
CFBEvetEvet

Açık Kaynak & Lisanslama

Aspose.Email FOSS for Python is released under the MIT License. Kişisel, dahili ve ticari projelerde kısıtlama olmaksızın kullanabilirsiniz. Kaynak kodu şu adreste mevcuttur GitHub.


Başlarken