Возможности
Обзор функции
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-IDset_message_class()— установить класс сообщения MAPIunicode_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()— проверить, является ли вложение встроенным MSGmapi_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_messagemapi_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 |