Introduction

Aspose.Email FOSS for Python is a free, MIT-licensed library for creating, reading, and Outlook uyumlu mesaj dosyalarını saf Python’a dönüştürmek.PyPI’de mevcuttur aspose-email-foss,Windows, macOS, Linux, Docker ve sunucusuz ortamlarda çalışır. Microsoft Office bağımlılığı ve mülkiyet çalışma süresi yoktur.

Kütüphane iki ana alanı kapsar: yüksek düzeyde MAPI katmanı (MapiMessage) Çalışmak için Mesaj konusu, organları, alıcıları ve eklentileri ile; ve düşük düzeyde bir yapı Yüzey (MsgReader, CFBReader, CFBStorage, CFBStream• Yakıt bileşikini ortaya çıkarır. Herhangi bir dosya biner konteynerleri destekler .msg Dosya için.

Bu makale, 26.3 sürümünde gönderilen anahtar özellikleri, API yüzeyinde yerleştirilmiştir.


Ana Özellikler

MapiMessage ile Yüksek Seviye Mesaj Oluşturma

MapiMessage Outlook uyumlu mesajlar oluşturmak için ana giriş noktasıdır. Sırp - Çağrı MapiMessage.create() Bir konu ve bir vücut ile, alıcıları ekleyin ve Yüzükler, sonra doğrudan bir .msg Dosya için.

from aspose.email_foss import msg

message = msg.MapiMessage.create(
    "Quarterly status update",
    "Hello team,\n\nPlease review the attached summary.\n\nRegards,\nEngineering",
)

message.set_property(msg.PropertyId.SENDER_NAME, "Build Agent")
message.set_property(msg.PropertyId.SENDER_EMAIL_ADDRESS, "agent@example.com")

message.add_recipient("alice@example.com", display_name="Alice Example")
message.add_recipient(
    "carol@example.com",
    display_name="Carol Example",
    recipient_type=msg.RECIPIENT_TYPE_CC,
)

message.add_attachment("report.txt", b"Summary content here.\n", mime_type="text/plain")
message.save("output.msg")

MSG Dosyalarını Okumak ve Denetlemek

MsgReader mevcut bir sistemin yapılandırılmış erişimini sağlar. .msg dosyayı tam yüklemeden A’ya girer MapiMessage.• Top seviyeli mülk girişleri, alıcı depoları ve yapıştırıcılar bireysel olarak depolamaktadır, büyük dosya denetimleri için pratik hale getirir ve Validasyon boru hattı.

with msg.MsgReader.from_file(“output.msg”) as reader: header = reader.top_level_header print(f"Recipients : {header.recipient_count}") print(f"Attachments: {header.attachment_count}")

for entry in reader.iter_recipient_storages():
    _, props = reader.parse_subobject_property_stream(entry.stream_id)
    print(f"  Recipient storage {entry.name}: {len(props)} property entries")

```python
from aspose.email_foss import msg

with msg.MsgReader.from_file("output.msg") as reader:
    header = reader.top_level_header
    print(f"Recipients : {header.recipient_count}")
    print(f"Attachments: {header.attachment_count}")

    for entry in reader.iter_recipient_storages():
        _, props = reader.parse_subobject_property_stream(entry.stream_id)
        print(f"  Recipient storage {entry.name}: {len(props)} property entries")

MSG Round-Trip: Yükleme, Değiştirme ve Kaydetme

Because MapiMessage Destek from_file() Yükleme ve save() Yazmak için, bir tam Okuma-değiştirme-yazma döngüsü sadece birkaç satır gerektirir. isimli özellikler, yazılı enumlar ve Unicode string işleme aracılığıyla mevcuttur. set_property, PropertyId,ve MapiNamedProperty.

with msg.MapiMessage.from_file(“original.msg”) as message: message.set_property(msg.PropertyId.SUBJECT, “Updated Subject”) message.save(“updated.msg”)


```python
from aspose.email_foss import msg

with msg.MapiMessage.from_file("original.msg") as message:
    message.set_property(msg.PropertyId.SUBJECT, "Updated Subject")
    message.save("updated.msg")

EML / RFC 5322 Dönüşüm

MapiMessage.to_email_message() yüklü bir MSG’yi standart Python’a dönüştürür email.message.EmailMessage RFC 5322’ye ihraç edilebilir. .eml Format Kullanımı Kayıtlı Kitap (Kayıtlar)MapiMessage.from_email_message()• Yapılandırma A MapiMessage Birden birinden EmailMessage.

from pathlib import Path
from aspose.email_foss import msg

with msg.MapiMessage.from_file("message.msg") as message:
    eml_bytes = message.to_email_bytes()
    Path("message.eml").write_bytes(eml_bytes)

# Reverse: load EML into MapiMessage
import email
raw_eml = Path("message.eml").read_bytes()
email_obj = email.message_from_bytes(raw_eml)
mapi = msg.MapiMessage.from_email_message(email_obj)
mapi.save("from_eml.msg")

CFB Konteyner Yolculuğu

Every .msg Dosya bir kombine dosya biner (CFB) konteyneridir. CFBReader sağlar sadece okuma-sadece giriş dizin ağacı, listeler ve akışlar izin vermek, yürüyüş hierarşiye ve ham akım byte çıkarmak - güvenmeden MsgReader.

from aspose.email_foss.cfb import CFBReader

with CFBReader.from_file("message.msg") as reader:
    print(f"CFB version  : {reader.major_version}")
    print(f"Sector size  : {reader.sector_size}")

    for depth, entry in reader.iter_tree():
        indent = "  " * depth
        size = entry.stream_size if entry.is_stream() else "-"
        print(f"{indent}{entry.name}  [size={size}]")

Aracı İşlemleri

Ekler ekleyin yoluyla MapiMessage.add_attachment() (İnternet Bilgileri için) veya MapiMessage.add_embedded_message_attachment() (MHP’nin bu iki yöntemi de kullanması için) Bir fil adı, ham byte ve seçmeli bir MIME tipi kabul edin.

message = msg.MapiMessage.create(“Attachment demo”, “See files below.”) message.add_attachment(“data.csv”, b"id,value\n1,100\n", mime_type=“text/csv”)

inner = msg.MapiMessage.create(“Nested message”, “This is embedded.”) message.add_embedded_message_attachment(inner, “nested.msg”) message.save(“with_attachments.msg”)


---

```python
from aspose.email_foss import msg

message = msg.MapiMessage.create("Attachment demo", "See files below.")
message.add_attachment("data.csv", b"id,value\n1,100\n", mime_type="text/csv")

inner = msg.MapiMessage.create("Nested message", "This is embedded.")
message.add_embedded_message_attachment(inner, "nested.msg")
message.save("with_attachments.msg")

Hızlı Başlangıç

pip install aspose-email-foss

Create and save a minimal MSG

message = msg.MapiMessage.create(“Hello World”, “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”)

Load it back and convert to EML

with msg.MapiMessage.from_file(“hello.msg”) as loaded: print(loaded.get_property_value(msg.PropertyId.SUBJECT)) eml = loaded.to_email_bytes() open(“hello.eml”, “wb”).write(eml)


---

```bash
pip install aspose-email-foss>=26.3
from aspose.email_foss import msg

# Create and save a minimal MSG
message = msg.MapiMessage.create("Hello World", "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")

# Load it back and convert to EML
with msg.MapiMessage.from_file("hello.msg") as loaded:
    print(loaded.get_property_value(msg.PropertyId.SUBJECT))
    eml = loaded.to_email_bytes()
    open("hello.eml", "wb").write(eml)

Desteklenen Formatlar

FormatExtensionReadWrite
Binary Dosya Yapılandırma.cfb
Outlook Mesajları.msg
EML / RFC 5322.eml

Açık Kaynak & Lisans

Aspose.Email FOSS for Python is released under the MIT License. The source repository is mevcuttur github.com/aspose-email-foss için tıklayınız ve The Piyasada yayınlanan paket, aspose-email-foss.• Ticari kullanım, değişiklik ve Tüm yeniden dağıtım MIT şartları altında izin verilir.


Başlamaya başlar

İlgili Kaynaklar