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

Aspose.Email FOSS for C++

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

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

Aspose.Email FOSS для C++ — це бібліотека з відкритим кодом під ліцензією MIT, написана на C++, призначена для роботи з файлами Microsoft Outlook .msg та контейнерами 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:** Завантажити існуючі контейнери CF B з шляху, потоку або байтового масиву файлів через 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: Створіть документи CF B програмно з cfb_document і серіалізуйте до байтів або файлів за допомогою cfb_writer::to_bytes() або cfb_writer::write_file().

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

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

Файл MSG Читання та запис

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

Де використовується переробка МСГ

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

Повідомлення MAPI високого рівня API

  • Створити повідомлення: Створіть повний лист за допомогою 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().
  • ** Заховувати mapi_message як EML:** Серіалізувати mapi_message назад у формат MIME з save_to_eml().
  • ** Вірність повороту:** Суб’єкт, тіло, відправник, одержувач та прикмети зберігаються через EML до MSG до EM L-поворотів.

Де використовується конверсія 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);
}
  

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

 Українська