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

Aspose.Email FOSS til C++

Læs, opret og behandl Outlook MSG-filer og CFB-beholdere fra C++ — gratis og open-source, ingen Microsoft Outlook-afhængighed.

Open-Source C++-bibliotek til MSG- og CFB-filer

Aspose.Email FOSS for C++ er et MIT-licenseret, open-source C++-bibliotek til at arbejde med Microsoft Outlook .msg-filer og Compound File Binary (CFB)-containere. Inkluder headerne via CMake og begynd straks at læse, oprette og behandle e‑mailbeskeder uden at installere Microsoft Outlook eller nogen proprietær runtime.

Biblioteket giver to niveauer af adgang. På lavt niveau giver cfb_reader og cfb_writer fuld kontrol over CFB binære containere — gennemse mappeindgange, læse og skrive lagringsnoder og strømdata samt inspicere den rå sektorlayout. msg_reader og msg_writer håndterer MSG-formatet oven på CFB og eksponerer MAPI‑egenskabsstrømme, modtager‑tabeller og vedhæftnings‑sub‑lagre. På højt niveau lader mapi_message dig oprette nye beskeder fra bunden, læse emner, brødtekster, modtagere og vedhæftninger samt konvertere mellem MSG‑ og EML‑format. Biblioteket bygger på enhver platform med en C++17-kompilator og har ingen eksterne afhængigheder, hvilket gør det egnet til Windows, Linux, macOS, Docker-containere og indlejrede systemer. En enterprise‑udgave med ekstra funktioner tilbydes som Aspose.Email for C++.

CFB-beholder Læs og Skriv

  • Åbn CFB-filer: Indlæs eksisterende CFB-beholdere fra en filsti, stream eller byte-array via cfb_reader::from_file(), cfb_reader::from_stream() eller cfb_reader::from_bytes().
  • Traversér mappetræet: Enumerér lagre og strømme ved hjælp af storage_ids(), stream_ids() og child_ids(), og naviger i indlejrede hierarkier med resolve_path().
  • Undersøg noder: Kontroller nodetype med cfb_node::is_storage() og cfb_node::is_stream(), læs tidsstempler via creation_time() og modified_time().
  • Skriv CFB-beholdere: Byg CFB-dokumenter programmatisk med cfb_document og serialiser til bytes eller fil via cfb_writer::to_bytes() eller cfb_writer::write_file().

Hvor CFB-adgang anvendes

  • MSG-filinspektion: CFB er containerformatet for Outlook .msg-filer — direkte CFB-adgang muliggør retsmedicinsk inspektion og reparation.
  • Custom binary formats: Enhver ældre applikation, der bruger CFB til datalagring, kan læses eller skrives uden en COM-afhængighed.
  • Datagendannelse: Gå igennem hele mappetræet og udtræk rå stream-bytes fra beskadigede eller ikke-standard CFB-filer.

MSG-fil Læs og Skriv

  • Læs MSG-filer: Åbn Outlook MSG-filer med msg_reader::from_file() eller msg_reader::from_stream() og få adgang til de underliggende MAPI‑egenskabsstrømme og vedhæftnings‑underlag.
  • Skriv MSG-filer: Opret MSG-filer fra en msg_document med msg_writer::to_bytes() eller msg_writer::write_file().
  • MSG-dokumentinspektion: Få adgang til versionsmetadata via msg_document::major_version(), msg_document::minor_version(), og tjek strenghed med msg_document::strict().
  • Konverter til CFB: Udtræk det underliggende CFB-dokument fra en MSG-fil via msg_document::to_cfb_document().

Hvor MSG-behandling anvendes

  • Email archival pipelines: Bulk-read .msg filer fra arkivmapper og udtrække metadata eller vedhæftede filer.
  • Migrationsværktøjer: Konverter MSG-samlinger til standardformater for import til ikke-Outlook-systemer.
  • Juridisk opdagelse: Parse rå MAPI‑egenskabsstrømme for at udtrække alle beskedfelter, inklusive ikke‑standard egenskaber.

Højniveau MAPI-besked-API

  • Opret meddelelser: Byg en komplet e‑mail med mapi_message::create(), og sæt derefter emne, brødtekst og HTML brødtekst via set_subject(), set_body() og set_html_body().
  • Indstil afsenderoplysninger: Konfigurer set_sender_name(), set_sender_email_address() og set_sender_address_type() til den udgående besked.
  • Administrer vedhæftede filer: Indlæs vedhæftede filer fra bytes eller streams med mapi_attachment::from_bytes() og mapi_attachment::from_stream(), og tjek for indlejrede meddelelser via is_embedded_message().
  • Save and reload: Serialiser med mapi_message::save() og genindlæs med mapi_message::from_file() eller mapi_message::from_stream().

Hvor den højniveau-API anvendes

  • Automatiseret e‑mailgenerering: Generer tusindvis af personlige MSG‑filer fra datarecords i batch‑jobs.
  • Oprettelse af testfixture: Byg kendte gode MSG-filer med forudsigeligt indhold til integrationstest-suiter.
  • Udtræk af vedhæftninger: Indlæs en MSG-fil, gennemløb vedhæftninger, og gem hver til disk.

EML- og MIME-konvertering

  • Load EML into mapi_message: Parse en standard .eml-fil (RFC 5322 / MIME) til et fuldt mapi_message-objekt via mapi_message::load_from_eml().
  • Gem mapi_message som EML: Serialiser en mapi_message tilbage til MIME-format med save_to_eml().
  • Rundtur-fidelitet: Emne, brødtekst, afsender, modtagere og vedhæftede filer bevares gennem EML til MSG til EML rundrejser.

Hvor EML-konvertering anvendes

  • Formatbro: Modtag e-mails som EML fra mailservere og konverter til MSG for Outlook‑kompatibel lagring.
  • Standardoverholdelse: Konverter proprietære MSG-filer til standard-MIME for levering til enhver mailtransport.
  • Arkivnormalisering: Normaliser et blandet arkiv af .eml og .msg filer til et enkelt format.

Læs emne fra en MSG-fil

Åbn en Outlook MSG-fil fra en strøm og udskriv emnet — ingen Microsoft Outlook påkrævet.

#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';
}

Opret og gem en MSG-besked

Byg en komplet e‑mail med afsender, modtager og vedhæftning, og skriv den derefter til både MSG- og EML-formater.

#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);
}
  

Support og læringsressourcer

 Dansk