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 Aktar | Dışa Aktar |
|---|---|---|
| MSG | Evet | Evet |
| CFB | Evet | Evet |
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.