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

Aspose.Email FOSS for C++

Läs, skapa och bearbeta Outlook MSG‑filer och CFB‑behållare från C++ — gratis och öppen källkod, utan Microsoft Outlook‑beroende.

Open-Source C++ Library för MSG och CFB filer

Aspose.Email FOSS för C++ är ett MIT-licensierat, öppen källkod C++-bibliotek för att arbeta med Microsoft Outlook .msg-filer och Compound File Binary (CFB)-behållare. Inkludera rubrikerna via CMake och börja omedelbart läsa, skapa och bearbeta e‑postmeddelanden utan att installera Microsoft Outlook eller någon proprietär runtime.

Biblioteket erbjuder två åtkomstnivåer. På låg nivå ger cfb_reader och cfb_writer full kontroll över CFB-binära behållare — traversera katalogposter, läsa och skriva lagringsnoder och strömdatat, och inspektera den råa sektorlayouten. msg_reader och msg_writer hanterar MSG-formatet ovanpå CFB, exponerar MAPI‑egenskapsströmmar, mottagartabeller och bilagors underlagringar. På hög nivå låter mapi_message dig skapa nya meddelanden från grunden, läsa ämnen, kroppar, mottagare och bilagor, samt konvertera mellan MSG‑ och EML‑format.

Biblioteket bygger på vilken plattform som helst med en C++17‑kompilator och har inga externa beroenden, vilket gör det lämpligt för Windows, Linux, macOS, Docker‑behållare och inbäddade system.

En företagsutgåva med ytterligare funktioner erbjuds som Aspose.Email for C++.

CFB-behållare Läs och skriv

  • Öppna CFB-filer: Ladda befintliga CF B-behållare från en filväg, stream eller bytearray via cfb_reader::from_file(), cfb_reader::from_stream() eller cfb_reader::from_bytes().
  • ** Gå igenom katalogträdet:** Räkna upp lagringar och strömmar med storage_ids(), stream_ids() och child_ids() och navigera i inneslutna hierarkier medresolve_path().
  • ** Kontrollera noder:** Kontrollerar nodtyp med cfb_node::is_storage() och cfb_node::is_stream(), läser tidsstämplar via creation_time() og modified_time().
  • ** Skriv CFB-behållare:** Bygg CF B-dokument programmatiskt med cfb_document och seriera till byte eller fil via cfb_writer::to_bytes() eller cfb_writer::write_file().

När CFB-åtkomst används

  • MSG-filinspektion: CFB är containerformat för Outlook .msg -filer Direkt tillgång till CF B möjliggör rättsmedicinsk inspektion och reparation.
  • Anpassade binära format: Alla äldre applikationer som använder CFB för datalagring kan läsas eller skrivas utan COM-beroende.
  • ** Dataåterställning:** Gå igenom hela katalogträdet och extrahera råströmbytes från skadade eller icke-standardiserade CFB-filer.

MSG-fil Läs och skriv

  • Läs MSG-filer: Öppna Outlook MS G-filer med msg_reader::from_file() eller msg_reader::from_stream() och få tillgång till underliggande MAPI-egendomströmmar och bifogade sublagringar.
  • ** Skriv MSG-filer:** Producera MS G-filer från en msg_document med msg_writer::to_bytes() eller msg_writer::write_file().
  • MSG-dokumentinspektion: Tillgång till metadata för versionen via msg_document::major_version(), msg_document::minor_version() och kontroll av stränghet med msg_document::strict().
  • Omvandla till CFB: Extrahera det underliggande CF B-dokumentet från en MSG-fil via msg_document::to_cfb_document().

Var MSG-bearbetning används

  • E-postarkivpipeliner: Bulkläsa .msg filer från arkivkataloger och extrahera metadata eller bilagor.
  • Migrationsverktyg: Konvertera MSG-samlingar till standardformat för import i system som inte är Outlook.
  • Legal discovery: Analysera rå MAPI-egendomströmmar för att extrahera alla meddelandefält, inklusive icke-standard egendomar.

MAPI-meddelande API på hög nivå

  • Skapar meddelanden: Skapa ett komplett e-postmeddelande med mapi_message::create(), ställa sedan in ämne, kropp och HTML-kropp via set_subject(), set_body() och set_html_body().
  • Sätt avsändarens uppgifter: Konfigurera set_sender_name(), set_sender_email_address() och set_sender_address_type() för det utgående meddelandet.
  • Hantera bifogade filer: Ladda in bibehåll från byte eller strömmar med mapi_attachment::from_bytes() och mapi_attachment::from_stream(), och kontrollera om det finns inbäddade meddelanden via is_embedded_message().
  • ** Spara och ladda om:** Seriera med mapi_message::save() och laddar om medmapi_message::from_file() eller mapi_message::from_stream().

Var högnivå-API används

  • Automatiserad e-postgenerering: Generera tusentals personliga MSG-filer från datainmatningar i batchjobb.
  • Skapande av testanläggningar: Skapa kända MSG-filer med förutsägbart innehåll för integrationstestpaket.
  • Extraktion av bifogade filer: Ladda in en MSG-fil, iterera bibehållna filer och spara dem på disk.

EML- och MIME-omvandling

  • Ladda EML i mapi_message: Parse en standard .eml fil (RFC 5322 / MIME) till ett fullt mapi_message objekt via mapi_message::load_from_eml().
  • ** Spara mapi_message som EML:** Seriera en mapi_message tillbaka till MIME-format med save_to_eml().
  • Runt- och bakåtträning: Objekt, kropp, avsändare, mottagare och bifogade filer bevaras genom EML till MSG till EM L runt-och baköver.

Omvandling av EML-värden

  • Formatbrygning: Ta emot e-postmeddelanden som EML från postservrar och konvertera till MSG för Outlook-kompatibel lagring.
  • Standardöverensstämmelse: Konvertera proprietära MSG-filer till standard MIME för leverans till alla posttransporter.
  • Arkivnormering: Normalisera ett blandat arkiv av .eml och .msg-filer till ett enda format.

Läs ämne från en MSG-fil

Öppna en Outlook MSG-fil från ett ström och skriva ut ämnet ingen Microsoft Outlook krävs.

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

Skapa och spara ett MSG-meddelande

Skapa ett komplett e-postmeddelande med avsändare, mottagare och bifogade filer. Skriv sedan det i både MSG- och 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);
}
  

Stöd och Lärande Resurser

 Svenska