Özellikler ve İşlevsellikler
Özellikler ve İşlevsellikler
Bu sayfa, her ana özelliği kapsar aspose-email-foss 26.3 çalışan Python örnekleriyle.
MSG Dosyalarını Okuma
Bir MSG dosyası yükleyin ve temel özelliklerine erişin:
from aspose.email_foss.msg import MapiMessage
msg = MapiMessage.from_file("message.msg")
print(f"Subject: {msg.subject}")
print(f"Body: {msg.body}")
print(f"HTML Body: {msg.body_html}")
print(f"Message Class: {msg.message_class}")MSG Dosyaları Oluşturma
Sıfırdan yeni bir mesaj oluşturun:
from aspose.email_foss.msg import MapiMessage
msg = MapiMessage.create("Meeting Notes", "Please find the notes attached.")
msg.save("new_message.msg")Mevcut bir mesajın konu ve gövdesini ayarlayın:
msg.subject = "Updated Subject"
msg.body = "Updated body text"
msg.save("updated.msg")Alıcılar
Görünen adlar ve türlerle alıcı ekleyin:
from aspose.email_foss.msg import MapiMessage, RECIPIENT_TYPE_CC
msg = MapiMessage.create("Hello", "Message body")
msg.add_recipient("alice@example.com", display_name="Alice Smith")
msg.add_recipient("bob@example.com", display_name="Bob Jones", recipient_type=RECIPIENT_TYPE_CC)
msg.save("with_recipients.msg")Ekler
İkili dosya ekleri ekleyin:
with open("report.pdf", "rb") as f:
data = f.read()
msg.add_attachment("report.pdf", data, mime_type="application/pdf")
msg.save("with_attachment.msg")Bir MSG mesajını iç içe ek olarak gömün:
inner = MapiMessage.create("Inner Subject", "Inner body")
msg.add_embedded_message_attachment(inner, filename="embedded.msg", mime_type="application/vnd.ms-outlook")
msg.save("with_embedded.msg")MAPI Özellikleri
MAPI özelliklerini özellik kimliğine göre okuyun ve yazın:
from aspose.email_foss.msg import PropertyId
# Read a property
subject = msg.get_property(PropertyId.SUBJECT)
# Set a property
msg.set_property(PropertyId.SUBJECT, "New Subject")Tüm özellikleri yineleyin:
for prop in msg.iter_properties():
print(f"Tag: {prop.property_tag:#010x}")E-posta Dönüştürme
MSG (MAPI) ve e-posta (RFC 5322) formatları arasında dönüştürün:
# MSG to email string
email_str = msg.to_email_string()
print(email_str[:500])
# MSG to EmailMessage object
email_msg = msg.to_email_message()
# EmailMessage back to MapiMessage
msg2 = MapiMessage.from_email_message(email_msg)
msg2.save("roundtrip.msg")Düşük Seviyeli CFB İşlemleri
CFB konteyner yapısını doğrudan okuyun:
from aspose.email_foss.cfb import CFBReader
reader = CFBReader.from_file("message.msg")
print(f"File size: {reader.file_size} bytes")
print(f"Sectors: {reader.fat_sector_count}")
print(f"Entries: {reader.directory_entry_count}")
for entry in reader.iter_storages():
print(f"Storage: {entry}")
for entry in reader.iter_streams():
print(f"Stream: {entry}")
reader.close()CFB belgelerini yazın:
from aspose.email_foss.msg import MsgWriter
data = msg.to_bytes()
with open("output.msg", "wb") as f:
f.write(data)İpuçları ve En İyi Uygulamalar
- Her zaman çağırın
msg.close()veya okuma işlemi tamamlandığında dosya tutucularını serbest bırakmak için bir bağlam yöneticisi kullanın - Kullanın
msg.validation_issuesMSG formatı uyumluluk sorunlarını kontrol etmek için - Bu
strictparametresiMapiMessage.from_file()hata toleransını kontrol eder — şunu ayarlayınFalsegevşek ayrıştırma için - Tüm ek veri, … sırasında belleğe yüklenir
from_file()— kullanatt.databaytlara doğrudan erişmek için;iter_attachments_info()zaten doldurulmuş ekler listesi üzerinde bir kullanışlı yineleyicidir - Kullanın
to_email_string()tam e-posta nesnesi oluşturulmadan hızlı metin önizlemeleri için
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
CFBError yüklenirken | Geçerli bir CFB/MSG dosyası değil | Dosyanın gerçek bir Outlook MSG olduğundan emin olun |
| Yüklemeden sonra boş gövde | Gövde yalnızca HTML olarak depolanmış | Kontrol et msg.body_html yerine msg.body |
| Alıcılar eksik | MSG’nin alıcı depolamaları yok | Alıcılar MSG formatında isteğe bağlıdır; kontrol edin iter_attachments_info() |
FAQ
Hangi MSG format sürümleri destekleniyor?
Kütüphane, Microsoft Outlook ile uyumlu CFB v3 ve v4 formatında MSG dosyalarını okur ve yazar.
EML dosyalarını okuyabilir miyim?
Doğrudan değil. Kütüphane MSG formatını yönetir. Kullan MapiMessage.from_email_message() RFC 5322’den dönüştürmek için EmailMessage nesneler.
İş parçacığı güvenliği destekleniyor mu?
Her MapiMessage ve CFBReader örnek bağımsızdır. Ayrı iş parçacıklarından ayrı örneklere eşzamanlı erişim güvenlidir.
API Referans Özeti
| Sınıf / Metot | Açıklama |
|---|---|
MapiMessage | Yüksek seviyeli MSG mesaj temsili |
MapiMessage.from_file() | MSG dosyasını yükle |
MapiMessage.create() | Yeni bir MSG mesajı oluştur |
MapiMessage.save() | MSG dosyasına kaydet |
MapiMessage.to_email_message() | EmailMessage (RFC 5322)‘ye dönüştür |
MapiMessage.from_email_message() | EmailMessage’den MSG’ye dönüştür |
MapiMessage.add_recipient() | Bir alıcı ekle |
MapiMessage.add_attachment() | İkili bir ek ekle |
MapiAttachment | Mesaj üzerindeki ek |
MapiRecipient | Mesaj üzerindeki alıcı |
MapiProperty | MAPI özelliği girişi |
CFBReader | Düşük seviyeli CFB konteyner okuyucu |
CFBWriter | Düşük seviyeli CFB konteyner yazıcı |
MsgReader | Düşük seviyeli MSG yapısı okuyucu |