Характеристики и функционалности

Характеристики и функционалности

Характеристики и функционалности

Тази страница обхваща всяка основна функция на aspose-email-foss 26.3 с работещи Python примери.


Четене на MSG файлове

Заредете MSG файл и достъпете неговите основни свойства:

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 файлове

Създайте ново съобщение от нулата:

from aspose.email_foss.msg import MapiMessage

msg = MapiMessage.create("Meeting Notes", "Please find the notes attached.")
msg.save("new_message.msg")

Задайте тема и тяло на съществуващо съобщение:

msg.subject = "Updated Subject"
msg.body = "Updated body text"
msg.save("updated.msg")

Получатели

Добавете получатели с имена за показване и типове:

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

Прикачени файлове

Добавете бинарни прикачени файлове:

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

Вградете MSG съобщение като вложен прикачен файл:

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 свойства

Четете и записвайте MAPI свойства по идентификатор на свойство:

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

Итерация през всички свойства:

for prop in msg.iter_properties():
    print(f"Tag: {prop.property_tag:#010x}")

Конвертиране на имейл

Конвертиране между формати MSG (MAPI) и имейл (RFC 5322):

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

Операции на ниско ниво с CFB

Прочетете структурата на CFB контейнера директно:

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 документи:

from aspose.email_foss.msg import MsgWriter

data = msg.to_bytes()
with open("output.msg", "wb") as f:
    f.write(data)

Съвети и най‑добри практики

  • Винаги извикайте msg.close() или използвайте контекстен мениджър, след като приключите с четенето, за да освободите файловите дескриптори
  • Използвайте msg.validation_issues за проверка на проблеми със съответствието на формата MSG
  • Това strict параметър в MapiMessage.from_file() контролира толеранса на грешки — задайте на False за по‑нежно парсиране
  • Всички данни за прикачените файлове се зареждат в паметта по време на from_file() — използвайте att.data за директен достъп до байтовете; iter_attachments_info() е удобен итератор върху вече попълнения списък с прикачени файлове
  • Използвайте to_email_string() за бързи прегледи на текста без пълно конструиране на имейл обект

Чести проблеми

ПроблемПричинаПоправка
CFBError при зарежданеНе е валиден CFB/MSG файлПроверете дали файлът е действителен Outlook MSG
Празно тяло след зарежданеТялото е съхранено само в HTMLПровери msg.body_html вместо msg.body
Липсващи получателиMSG няма съхранения за получателиПолучателите са опционални в MSG формата; проверете iter_attachments_info()

FAQ

Кои версии на формата MSG се поддържат?

Библиотеката чете и записва MSG файлове във формат CFB v3 и v4, съвместим с Microsoft Outlook.

Мога ли да чета EML файлове?

Не директно. Библиотеката обработва MSG формата. Използвайте MapiMessage.from_email_message() за конвертиране от RFC 5322 EmailMessage обекти.

Поддържа ли се безопасност при нишки?

Всеки MapiMessage и CFBReader екземплярът е независим. Паралелният достъп до отделни екземпляри от различни нишки е безопасен.


Обобщение на API справката

Клас / МетодОписание
MapiMessageВисоко ниво представяне на MSG съобщение
MapiMessage.from_file()Зареждане на MSG файл
MapiMessage.create()Създайте ново MSG съобщение
MapiMessage.save()Запазете в MSG файл
MapiMessage.to_email_message()Конвертирайте към EmailMessage (RFC 5322)
MapiMessage.from_email_message()Конвертирайте от EmailMessage към MSG
MapiMessage.add_recipient()Добавете получател
MapiMessage.add_attachment()Добавете двоично прикачване
MapiAttachmentПрикачен файл в съобщение
MapiRecipientПолучател в съобщение
MapiPropertyMAPI свойство запис
CFBReaderЧетец на CFB контейнер на ниско ниво
CFBWriterПисач на CFB контейнер на ниско ниво
MsgReaderЧетец на MSG структура на ниско ниво
 Български