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

Aspose.Email FOSS for 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++ Library for 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 streamdata, og inspicere den rå sektorlayout. msg_reader og msg_writer håndterer MSG-formatet oven på CFB, eksponerer MAPI‑egenskabsstreams, 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, og konvertere mellem MSG‑ og EML‑format.

Biblioteket kan bygges 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‑edition med ekstra funktioner tilbydes som Aspose.Email for C++.

CFB-container Læs og skriv

  • ** Åbn CFB-filer:** Lade eksisterende CF B-containere fra en filvej, stream eller bytearray via cfb_reader::from_file(), cfb_reader::from_stream() eller cfb_reader::from_bytes().
  • Gennemgå katalogtræet: Oplæs lagringer og strømme ved hjælp af storage_ids(), stream_ids() og child_ids() og navigér indlejrede hierarkier med resolve_path().
  • ** Tjek noderne:** Kontrollér node type med cfb_node::is_storage() og cfb_node::is_stream(), læs tidsstempler via creation_time() ogmodified_time().
  • ** Skriv CFB-containere:** Opbyg CF B-dokumenter programmeringsmæssigt med cfb_document og serialisér til byte 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 adgang til CF B muliggør retsmedicinske inspektioner og reparationer.
  • Kustom binære formater: Enhver gammel applikation, der bruger CFB til datalagring, kan læses eller skrives uden COM-afhængighed.
  • ** Data recovery:** Gå gennem hele katalogtræet og udtræk rå stream bytes fra beskadigede eller ikke-standard CFB filer.

MSG-fil Læse og Skriv

  • Læs MSG-filer: Åbn Outlook MS G-filer med msg_reader::from_file() eller msg_reader::from_stream() og få adgang til de underliggende MAPI-egenskaber strømme og vedhæftede sublagre.
  • ** Skriv MSG-filer:** Fremstille MS G-filer fra en msg_document med msg_writer::to_bytes() eller msg_writer::write_file().
  • MSG-dokumentkontrol: Tilgå metadata fra versionen via msg_document::major_version(), msg_document::minor_version() og kontroller strengheden med msg_document::strict().
  • ** Konvertere til CFB:** Udtræk det underliggende CF B-dokument fra en MSG-fil via msg_document::to_cfb_document().

Hvor der anvendes MSG-behandling

  • E-mail arkiveringsrørledninger: Masseles .msg filer fra arkivmapper og ekstrakt metadata eller vedhæftede filer.
  • Migrationsværktøjer: Konvertere MSG-samlinger til standardformater, så de kan importeres i systemer uden for Outlook.
  • Legal discovery: Analyser rå MAPI-egenskabstrømme for at udtrække alle meddelelsesfelter, herunder ikke-standardegenskaber.

MAPI-meddelelsess API på højt niveau

  • Skab beskeder: Opbyg en komplet e-mail med mapi_message::create(), og sæt derefter emne, krop og HTML-legeme via set_subject(), set_body() og set_html_body().
  • Sæt afsenderoplysninger: Konfigurer set_sender_name(), set_sender_email_address() og set_sender_address_type() til den udgående meddelelse.
  • ** Administrer vedhæftede filer:** Lade vedlæg fra byte eller strømme med mapi_attachment::from_bytes() og mapi_attachment::from_stream(), og tjek for indlejrede meddelelser via is_embedded_message().
  • Lad og lad igen: Serialiser med mapi_message::save() og læs på ny medmapi_message::from_file() eller mapi_message::from_stream().

Hvor man bruger High-Level API'en

  • Automatiseret e-mailgenerering: Generer tusindvis af personlige MSG-filer fra dataoptegnelser i batchjob.
  • ** Oprettelse af testanlæg:** Opbygning af kendte MSG-filer med forudsigeligt indhold til integrationstestserier.
  • Extraktion af vedhæftede filer: Lade en MSG-fil op, gentag vedlæg og gem hver på disk.

EML- og MIME-konvertering

  • Lad EML ind i mapi_message: Parser en standard .eml fil (RFC 5322 / MIME) til et fuldt mapi_message objekt via mapi_message::load_from_eml().
  • Lad mapi_message gemmes som EML: Serialiser en mapi_message tilbage til MIME-format med save_to_eml().
  • ** Rundrejse-troværdighed:** Emne, krop, afsender, modtagere og vedhæftede filer bevares gennem EML til MSG til EM L rundrejser.

Hvor EML-omdannelse anvendes

  • Formatbridning: Modtag e-mails som EML fra mailservere og konvertere til MSG for Outlook-kompatibel lagring.
  • Forpligtelse til at overholde standarder: Konvertere proprietære MSG-filer til standard MIME for levering til enhver posttransport.
  • Arkivnormalisering: Normaliser et blandet arkiv af .eml og .msg-filer til ét format.

Læs emne fra en MSG-fil

Åbn en Outlook MSG-fil fra et stream og printe emnet ingen Microsoft Outlook kræves.

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

Oprette og gemme en MSG-meddelelse

Opbyg en komplet e-mail med afsender, modtager og vedhæftede filer. Skriv den derefter i både MSG- og EML-format.

#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