Функції та можливості

Функції та можливості

Функції та можливості

Ця сторінка охоплює всі основні функції 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 як вкладений attachment:

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() для швидкого попереднього перегляду тексту без повного створення об’єкта email

Поширені проблеми

ПроблемаПричинаВиправлення
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Одержувач у повідомленні
MapiPropertyЗапис властивості MAPI
CFBReaderНизькорівневий читач контейнера CFB
CFBWriterНизькорівневий записувач контейнера CFB
MsgReaderНизькорівневий читач структури MSG
 Українська