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 за C++ е библиотека с отворен код, лицензирана под MIT, предназначена за работа с файлове на Microsoft Outlook .msg и контейнери Compound File Binary (CFB). Включете заглавните файлове чрез CMake и веднага започнете да четете, създавате и обработвате имейл съобщения без да инсталирате Microsoft Outlook или какъвто и да е собственически runtime.

Библиотеката предоставя два нива на достъп. На ниско ниво, cfb_reader и cfb_writer дават пълен контрол върху CFB бинарните контейнери — обхождат директориите, четат и записват възли за съхранение и данни от потоци, и инспектират суровата подредба на секторите. msg_reader и msg_writer обработват формата MSG върху CFB, като излагат MAPI потоци със свойства, таблици с получатели и под‑съхранения за прикачени файлове. На високо ниво, mapi_message ви позволява да създавате нови съобщения от нулата, да четете теми, тела, получатели и прикачени файлове, и да конвертирате между формати MSG и EML. Библиотеката работи на всяка платформа с компилатор C++17 и няма външни зависимости, което я прави подходяща за Windows, Linux, macOS, Docker контейнери и вградени системи. Enterprise издание с допълнителни функции се предлага като 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

  • Проверка на 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

  • Имейл архивни конвейери: Масово четене на .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().
  • Round-trip fidelity: Тема, тяло, подател, получатели и прикачени файлове се запазват при преминаване от EML към MSG към EML.

Къде се използва конвертиране на EML

  • Format bridging: Получавайте имейли като 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);
}
  

Ресурси за поддръжка и обучение

 Български