1. Produkty
  2.   Aspose.Email
  3.   Aspose.Email FOSS for C++

Aspose.Email FOSS dla C++

Odczytuj, twórz i przetwarzaj pliki Outlook MSG oraz kontenery CFB w C++ — darmowe i open-source, bez zależności od Microsoft Outlook.

Biblioteka C++ typu open-source dla plików MSG i CFB

Aspose.Email FOSS dla C++ to biblioteka C++ na licencji MIT, otwartoźródłowa, służąca do pracy z plikami .msg Microsoft Outlook oraz kontenerami Compound File Binary (CFB). Dołącz nagłówki za pomocą CMake i od razu zacznij odczytywać, tworzyć i przetwarzać wiadomości e‑mail bez instalowania Microsoft Outlook ani żadnego własnościowego środowiska uruchomieniowego.

Biblioteka zapewnia dwa poziomy dostępu. Na niskim poziomie cfb_reader i cfb_writer dają pełną kontrolę nad binarnymi kontenerami CFB — przeglądanie wpisów katalogu, odczyt i zapis węzłów magazynu oraz danych strumieni, oraz inspekcję surowego układu sektorów. msg_reader i msg_writer obsługują format MSG na bazie CFB, udostępniając strumienie właściwości MAPI, tabele odbiorców i podmagazyny załączników. Na wysokim poziomie mapi_message pozwala tworzyć nowe wiadomości od podstaw, odczytywać tematy, treści, odbiorców i załączniki oraz konwertować między formatami MSG i EML. Biblioteka buduje się na dowolnej platformie z kompilatorem C++17 i nie ma zewnętrznych zależności, co czyni ją odpowiednią dla Windows, Linux, macOS, kontenerów Docker oraz systemów wbudowanych. Wersja enterprise z dodatkowymi funkcjami jest oferowana jako Aspose.Email for C++.

Odczyt i zapis kontenera CFB

  • Otwórz pliki CFB: Załaduj istniejące kontenery CFB z ścieżki pliku, strumienia lub tablicy bajtów za pomocą cfb_reader::from_file(), cfb_reader::from_stream() lub cfb_reader::from_bytes().
  • Przeglądaj drzewo katalogów: Wymieniaj magazyny i strumienie przy użyciu storage_ids(), stream_ids() i child_ids(), oraz nawiguj po zagnieżdżonych hierarchiach przy użyciu resolve_path().
  • Sprawdź węzły: Sprawdź typ węzła przy użyciu cfb_node::is_storage() i cfb_node::is_stream(), odczytaj znaczniki czasu za pomocą creation_time() i modified_time().
  • Zapisz kontenery CFB: Twórz dokumenty CFB programowo przy użyciu cfb_document i serializuj do bajtów lub pliku za pomocą cfb_writer::to_bytes() lub cfb_writer::write_file().

Gdzie używany jest dostęp CFB

  • Inspekcja plików MSG: CFB jest formatem kontenera dla plików Outlook .msg — bezpośredni dostęp do CFB umożliwia forensyczną inspekcję i naprawę.
  • Niestandardowe formaty binarne: Wszelkie starsze aplikacje używające CFB do przechowywania danych mogą być odczytywane lub zapisywane bez zależności od COM.
  • Odzyskiwanie danych: Przejdź pełne drzewo katalogów i wyodrębnij surowe bajty strumienia z uszkodzonych lub niestandardowych plików CFB.

Odczyt i zapis pliku MSG

  • Odczyt plików MSG: Otwórz pliki Outlook MSG za pomocą msg_reader::from_file() lub msg_reader::from_stream() i uzyskaj dostęp do podstawowych strumieni właściwości MAPI oraz podmagazynów załączników.
  • Zapisz pliki MSG: Produkuj pliki MSG z msg_document przy użyciu msg_writer::to_bytes() lub msg_writer::write_file().
  • Inspekcja dokumentu MSG: Uzyskaj metadane wersji za pomocą msg_document::major_version(), msg_document::minor_version() i sprawdź rygorystyczność przy użyciu msg_document::strict().
  • Convert to CFB: Wyodrębnij podstawowy dokument CFB z pliku MSG za pomocą msg_document::to_cfb_document().

Gdzie wykorzystywane jest przetwarzanie MSG

  • Email archival pipelines: Masowo odczytaj pliki .msg z katalogów archiwum i wyodrębnij metadane lub załączniki.
  • Narzędzia migracyjne: Konwertuj kolekcje MSG do standardowych formatów w celu importu do systemów nie‑Outlook.
  • Legal discovery: Przetwórz surowe strumienie właściwości MAPI, aby wyodrębnić wszystkie pola wiadomości, w tym właściwości niestandardowe.

Wysokopoziomowe API wiadomości MAPI

  • Utwórz wiadomości: Zbuduj pełny e‑mail przy użyciu mapi_message::create(), a następnie ustaw temat, treść i HTML treść za pomocą set_subject(), set_body() i set_html_body().
  • Ustaw szczegóły nadawcy: Skonfiguruj set_sender_name(), set_sender_email_address() i set_sender_address_type() dla wiadomości wychodzącej.
  • Zarządzaj załącznikami: Ładuj załączniki z bajtów lub strumieni przy użyciu mapi_attachment::from_bytes() i mapi_attachment::from_stream(), oraz sprawdzaj wiadomości osadzone za pomocą is_embedded_message().
  • Zapisz i wczytaj: Serializuj przy użyciu mapi_message::save() i wczytaj przy użyciu mapi_message::from_file() lub mapi_message::from_stream().

Gdzie używane jest API wysokiego poziomu

  • Automatyczne generowanie e-maili: Generuj tysiące spersonalizowanych plików MSG z rekordów danych w zadaniach wsadowych.
  • Tworzenie fixture testowych: Buduj znane dobre pliki MSG z przewidywalną zawartością dla zestawów testów integracyjnych.
  • Ekstrakcja załączników: Wczytaj plik MSG, iteruj załączniki i zapisz każdy na dysku.

Konwersja EML i MIME

  • Załaduj EML do mapi_message: Przeanalizuj standardowy plik .eml (RFC 5322 / MIME) do pełnego obiektu mapi_message za pomocą mapi_message::load_from_eml().
  • Zapisz mapi_message jako EML: Serializuj mapi_message z powrotem do formatu MIME przy użyciu save_to_eml().
  • Round-trip fidelity: Temat, treść, nadawca, odbiorcy i załączniki są zachowywane podczas konwersji EML do MSG i z powrotem do EML.

Gdzie używana jest konwersja EML

  • Format bridging: Odbieraj e‑maile w formacie EML z serwerów pocztowych i konwertuj je na MSG do przechowywania zgodnego z Outlookiem.
  • Zgodność ze standardami: Konwertuj własnościowe pliki MSG na standardowy MIME w celu dostarczenia do dowolnego transportu poczty.
  • Normalizacja archiwum: Znormalizuj mieszane archiwum plików .eml i .msg do jednego formatu.

Odczytaj temat z pliku MSG

Otwórz plik Outlook MSG ze strumienia i wydrukuj temat — nie wymaga 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';
}

Utwórz i zapisz wiadomość MSG

Utwórz kompletną wiadomość e‑mail z nadawcą, odbiorcą i załącznikiem, a następnie zapisz ją w formatach MSG i 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);
}
  

Zasoby Wsparcia i Nauki

 Polski