Python'da MSG Dosyalarını Nasıl Ayrıştırılır
aspose-email-foss for Python, Microsoft Office bağımlılıkları olmadan Outlook MSG dosyalarını okuyan saf bir Python API’si sağlar. Tüm mesaj verilerine erişmek için bir dosyayı MapiMessage nesnesine yükleyin.
Adım Adım Kılavuz
Adım 1: Paketi Yükleyin
pip install aspose-email-fossPython 3.10 veya üzeri gerekir.
Adım 2: MapiMessage Sınıfını İçe Aktar
from aspose.email_foss.msg import MapiMessageAdım 3: MSG Dosyası Yükle
msg = MapiMessage.from_file("message.msg")Bozuk dosyaların hoşgörülü ayrıştırılması için strict=False parametresini geçin:
msg = MapiMessage.from_file("message.msg", strict=False)Adım 4: Mesaj Özelliklerine Erişme
print(f"Subject: {msg.subject}")
print(f"Body: {msg.body}")
print(f"HTML Body: {msg.body_html[:200] if msg.body_html else 'None'}")
print(f"Message Class: {msg.message_class}")Adım 5: Ekleri Listele
for att in msg.iter_attachments_info():
name = att.storage_name
is_embedded = att.is_embedded_message
print(f"Attachment: {name}, embedded={is_embedded}")Adım 6: Düşük Seviyeli CFB Yapısını İncele
from aspose.email_foss.cfb import CFBReader
reader = CFBReader.from_file("message.msg")
print(f"Directory entries: {reader.directory_entry_count}")
for entry in reader.iter_streams():
print(f" Stream: {entry}")
reader.close()Yaygın Sorunlar ve Çözümler
CFBError yüklenirken
Dosya geçerli bir CFB konteyneri değil. Gerçek bir Outlook MSG dosyası olduğunu, EML olmadığını doğrulayın.
Gövde boş, ancak HTML gövdesi içerik içeriyor
Bazı mesajlar içeriği yalnızca HTML’de depolar. msg.body None döndürdüğünde msg.body_html kontrol edin.
Doğrulama uyarıları
Yüklenen dosya için uyumluluk uyarılarının bir demetini görmek üzere msg.validation_issues‘e erişin.
Sıkça Sorulan Sorular (SSS)
EML dosyalarını okuyabilir miyim?
Doğrudan değil. Kütüphane MSG (CFB) formatını işler. EML içeriğini önce bir EmailMessage nesnesine dönüştürün, ardından MapiMessage.from_email_message() kullanın.
Yükleme, tüm ek verilerini belleğe okur mu?
Hayır. Ek meta verileri talep üzerine okunur. Hafif yineleme için iter_attachments_info() kullanın.
İş parçacığı güvenli mi?
Her MapiMessage örneği bağımsızdır. Ayrı örneklerden eşzamanlı okuma güvenlidir.