1. Продукти
  2.   Aspose.Email
  3.   Aspose.Email FOSS for C++

Aspose.Email FOSS для C++

Читати, створювати та обробляти файли Outlook MSG та контейнери CFB з C++ — безкоштовно та з відкритим кодом, без залежності від Microsoft Outlook.

Відкрита C++ бібліотека для файлів MSG та CFB

Aspose.Email FOSS for C++ — це MIT-licensed, open-source бібліотека C++ для роботи з файлами .msg Microsoft Outlook та контейнерами Compound File Binary (CFB). Підключайте заголовки через CMake і одразу починайте читати, створювати та обробляти електронні листи без встановлення Microsoft Outlook або будь‑якого пропрієтарного середовища виконання.

Бібліотека надає два рівні доступу. На низькому рівні cfb_reader і cfb_writer дають повний контроль над CFB бінарними контейнерами — перебирають записи каталогу, читають і записують вузли сховища та дані потоків, і інспектують розташування сирих секторів. msg_reader і msg_writer обробляють формат MSG поверх CFB, відкриваючи потоки властивостей MAPI, таблиці одержувачів та підсховища вкладень. На високому рівні mapi_message дозволяє створювати нові повідомлення з нуля, читати теми, тіла, одержувачів і вкладення, а також конвертувати між форматами MSG і EML. Бібліотека компілюється на будь‑якій платформі з компілятором C++17 і не має зовнішніх залежностей, що робить її придатною для Windows, Linux, macOS, Docker‑контейнерів та вбудованих систем. Корпоративна редакція з додатковими функціями пропонується як Aspose.Email for C++.

Читання та запис контейнерів CFB

  • Відкрити файли CFB: Завантажте існуючі CFB контейнери з шляху до файлу, потоку або масиву байтів за допомогою cfb_reader::from_file(), cfb_reader::from_stream() або cfb_reader::from_bytes().
  • Перебрати дерево каталогів: Перерахувати сховища та потоки за допомогою storage_ids(), stream_ids() та child_ids(), і переходити по вкладеним ієрархіям за допомогою resolve_path().
  • Перевірка вузлів: Перевірте тип вузла за допомогою cfb_node::is_storage() та cfb_node::is_stream(), зчитайте мітки часу за допомогою creation_time() та modified_time().
  • Запис CFB контейнерів: Створюйте CFB документи програмно за допомогою cfb_document і серіалізуйте їх у байти або файл за допомогою cfb_writer::to_bytes() або cfb_writer::write_file().

Де використовується CFB Access

  • Перевірка файлів MSG: CFB — це формат контейнера для файлів Outlook .msg — прямий доступ до CFB дозволяє проводити судово‑експертну перевірку та ремонт.
  • Користувацькі двійкові формати: Будь-яку застарілу програму, що використовує CFB для зберігання даних, можна читати або записувати без залежності від COM.
  • Відновлення даних: Обійти повне дерево каталогів і витягти необроблені байти потоку з пошкоджених або нестандартних CFB‑файлів.

Читання та запис файлів MSG

  • Читати файли MSG: Відкривайте файли Outlook MSG за допомогою msg_reader::from_file() або msg_reader::from_stream() та отримуйте доступ до базових потоків властивостей MAPI та підсховищ вкладень.
  • Записати MSG‑файли: Створюйте MSG‑файли з msg_document за допомогою msg_writer::to_bytes() або msg_writer::write_file().
  • Перевірка документа MSG: Доступ до метаданих версії через msg_document::major_version(), msg_document::minor_version(), і перевірте суворість за допомогою msg_document::strict().
  • Конвертувати в CFB: Витягніть базовий документ CFB з файлу MSG за допомогою msg_document::to_cfb_document().

Де використовується обробка MSG

  • Email archival pipelines: Масово читати файли .msg з каталогів архіву та вилучати метадані або вкладення.
  • Інструменти міграції: Перетворюйте колекції MSG у стандартні формати для імпорту в системи, які не є Outlook.
  • Юридичне розкриття: Розберіть необроблені потоки властивостей MAPI, щоб витягти всі поля повідомлення, включаючи нестандартні властивості.

Високорівневий API повідомлень MAPI

  • Створити повідомлення: Створіть повний лист за допомогою mapi_message::create(), потім встановіть тему, тіло та HTML тіло за допомогою set_subject(), set_body() та set_html_body().
  • Встановити дані відправника: Налаштуйте set_sender_name(), set_sender_email_address() та set_sender_address_type() для вихідного повідомлення.
  • Керування вкладеннями: Завантажуйте вкладення з байтів або потоків за допомогою mapi_attachment::from_bytes() та mapi_attachment::from_stream(), а також перевіряйте наявність вбудованих повідомлень за допомогою is_embedded_message().
  • Зберегти та перезавантажити: Сериалізуйте за допомогою mapi_message::save() і перезавантажте за допомогою mapi_message::from_file() або mapi_message::from_stream().

Де використовується високорівневий API

  • Автоматичне створення електронних листів: Генеруйте тисячі персоналізованих MSG файлів з даних записів у пакетних завданнях.
  • Створення тестових фікстур: Створюйте відомі‑правильні MSG‑файли з передбачуваним вмістом для наборів інтеграційних тестів.
  • Витягування вкладень: Завантажте файл MSG, переберіть вкладення та збережіть кожне на диск.

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

  • Завантажити EML у mapi_message: Проаналізуйте стандартний файл .eml (RFC 5322 / MIME) у повний об’єкт mapi_message за допомогою mapi_message::load_from_eml().
  • Save mapi_message as EML: Серіалізуйте mapi_message назад у формат MIME за допомогою save_to_eml().
  • Відтворення без втрат під час циклічних перетворень: Тема, тіло, відправник, одержувачі та вкладення зберігаються під час перетворень EML у MSG і назад у EML.

Де використовується конвертація EML

  • Перетворення формату: Отримуйте електронні листи у форматі EML від поштових серверів і конвертуйте їх у MSG для сумісного зі Outlook зберігання.
  • Відповідність стандартам: Перетворюйте пропрієтарні файли MSG у стандартний MIME для доставки в будь‑який поштовий транспорт.
  • Нормалізація архіву: Нормалізуйте змішаний архів файлів .eml та .msg до єдиного формату.

Прочитати тему з файлу MSG

Відкрийте файл Outlook MSG з потоку та виведіть тему — без Microsoft Outlook.

#include <fstream>
#include <iostream>

#include "aspose/email/foss/msg/mapi_message.hpp"

int main()
{
    std::ifstream input("sample.msg", std::ios::binary);
    auto message = aspose::email::foss::msg::mapi_message::from_stream(input);
    std::cout << message.subject() << '\n';
}

Створити та зберегти повідомлення MSG

Створіть повний лист з відправником, одержувачем та вкладенням, а потім запишіть його у формати MSG та EML.

#include <fstream>

#include "aspose/email/foss/msg/mapi_message.hpp"

int main()
{
    auto message = aspose::email::foss::msg::mapi_message::create("Hello", "Body");
    message.set_sender_name("Alice");
    message.set_sender_email_address("alice@example.com");
    message.add_recipient("bob@example.com", "Bob");
    message.add_attachment("note.txt", std::vector<std::uint8_t>{'a', 'b', 'c'}, "text/plain");

    std::ofstream msg_output("hello.msg", std::ios::binary);
    message.save(msg_output);

    std::ofstream eml_output("hello.eml", std::ios::binary);
    message.save_to_eml(eml_output);
}
  

Ресурси Підтримки та Навчання

 Українська