Возможности

Обзор функции

Aspose.Email FOSS for C++ предоставляет многоуровневый API для работы с файлами Outlook MSG и
контейнерами Compound File Binary (CFB). Библиотека содержит 26 публичных классов в двух
подсистемах: CFB и MSG/MAPI.


CFB Доступ к контейнеру

Подсистема CFB читает и записывает формат Microsoft Compound File Binary — контейнерный формат, лежащий в основе файлов Outlook .msg.

КлассНазначение
cfb_readerОткрывать и обходить существующие файлы CFB
cfb_writerСериализовать документы CFB в байты или файлы
cfb_documentПредставление CFB‑файла в памяти
cfb_nodeОтдельный узел хранилища или потока в дереве каталогов
cfb_storageИменованная запись хранилища
cfb_streamИменованный поток с бинарными данными

Ключевые операции:

  • Открыть из файла, потока или байтов: cfb_reader::from_file(), cfb_reader::from_stream(), cfb_reader::from_bytes(), cfb_reader::from_buffer()
  • Перечислить содержимое: storage_ids(), stream_ids(), child_ids(), directory_entry_count()
  • Навигация по пути: find_child_by_name(), resolve_path()
  • Просмотр узлов: cfb_node::is_storage(), cfb_node::is_stream(), creation_time(), modified_time()
  • Записать контейнеры: cfb_writer::to_bytes(), cfb_writer::write_file(), cfb_writer::write_stream()

Чтение и запись файлов MSG

Подсистема MSG обрабатывает формат сообщений Outlook поверх CFB.

КлассНазначение
msg_readerОткрывать и разбирать файлы MSG
msg_writerСериализовать документы MSG
msg_documentПредставление MSG‑файла в памяти

Ключевые операции:

  • Открыть MSG файлы: msg_reader::from_file(), msg_reader::from_stream()
  • Проверить метаданные: msg_document::major_version(), msg_document::minor_version(), msg_document::strict()
  • Записать MSG файлы: msg_writer::to_bytes(), msg_writer::write_file(), msg_writer::write_stream()
  • Преобразовать в CFB: msg_document::to_cfb_document() для низкоуровневого доступа к CFB

API сообщений MAPI высокого уровня

Класс mapi_message предоставляет высокоуровневый интерфейс для создания, чтения и преобразования электронных сообщений.

Создание сообщений:

  • mapi_message::create() — создать новое сообщение с темой и телом
  • set_subject(), set_body(), set_html_body() — установить содержимое сообщения
  • set_sender_name(), set_sender_email_address(), set_sender_address_type() — установить отправителя
  • set_internet_message_id() — установить заголовок Message-ID
  • set_message_class() — установить класс сообщения MAPI
  • unicode_strings() / set_unicode_strings() — управлять кодированием Unicode‑строк

Загрузка сообщений:

  • mapi_message::from_file() — загрузить из пути к файлу
  • mapi_message::from_stream() — загрузить из входного потока
  • mapi_message::from_msg_document() — загрузить из msg_document

Сохранение сообщений:

  • save() — сериализовать в байты, поток или файл
  • to_msg_document() — преобразовать в msg_document для низкоуровневого доступа

Вложения:

  • mapi_attachment::from_bytes(), mapi_attachment::from_stream() — загрузить данные вложения
  • mapi_attachment::is_embedded_message() — проверить, является ли вложение встроенным MSG
  • mapi_attachment::load_data() — отложенно загрузить содержимое вложения

Свойства MAPI:

  • mapi_property::property_id(), property_type(), property_tag() — идентификация свойства
  • mapi_property::set_value(), flags(), set_flags() — манипулирование свойством
  • mapi_property_collection::remove() — удаление свойств из коллекции

Конвертация EML и MIME

Конвертировать между форматом Outlook MSG и стандартным EML (RFC 5322 / MIME):

  • mapi_message::load_from_eml() — разобрать файл .eml в mapi_message
  • mapi_message::save_to_eml() — сериализовать mapi_message в формат EML

Тема, тело, отправитель, получатели и вложения сохраняются при круговых передачах.


Перечисления и Константы

ПеречислениеНазначение
common_message_property_idСтандартные идентификаторы свойств MAPI (тема, тело, отправитель, вложения)
property_type_codeКоды типов свойств MAPI (целое, строка, двоичный, время, GUID)
msg_storage_roleРоли хранилища в файлах MSG (сообщение, получатель, вложение)
directory_object_typeТипы записей каталога CFB (хранилище, поток, корень)
directory_color_flagФлаги цвета красно‑черного дерева для записей каталога CFB
sector_markerСпециальные значения секторов в таблицах распределения файлов CFB
 Русский