Функції та можливості
Функції та можливості
Ця сторінка охоплює всі основні функції 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 |