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

Aspose.Email FOSS voor C++

Lees, maak en verwerk Outlook MSG‑bestanden en CFB‑containers vanuit C++ — gratis en open-source, zonder Microsoft Outlook‑afhankelijkheid.

Open-Source C++-bibliotheek voor MSG- en CFB‑bestanden

Aspose.Email FOSS voor C++ is een MIT-gelicentieerde, open-source C++ bibliotheek voor het werken met Microsoft Outlook .msg bestanden en Compound File Binary (CFB) containers. Include de headers via CMake en begin onmiddellijk met het lezen, maken en verwerken van e‑mailberichten zonder Microsoft Outlook of enige propriëtaire runtime te installeren.

De bibliotheek biedt twee niveaus van toegang. Op het lage niveau geven cfb_reader en cfb_writer volledige controle over CFB binaire containers — doorloop directory‑items, lees en schrijf opslag‑knooppunten en stream‑data, en inspecteer de ruwe sectorindeling. msg_reader en msg_writer behandelen het MSG‑formaat bovenop CFB, en maken MAPI‑eigenschap‑streams, ontvangerstabellen en bijlage‑sub‑storages toegankelijk. Op het hoge niveau laat mapi_message je nieuwe berichten vanaf nul maken, onderwerpen, inhoud, ontvangers en bijlagen lezen, en converteren tussen MSG‑ en EML‑formaat. De bibliotheek bouwt op elk platform met een C++17-compiler en heeft geen externe afhankelijkheden, waardoor hij geschikt is voor Windows, Linux, macOS, Docker-containers en embedded systemen. Een enterprise-editie met extra functies wordt aangeboden als Aspose.Email for C++.

CFB-container lezen en schrijven

  • Open CFB-bestanden: Laad bestaande CFB-containers vanaf een bestandspad, stream of byte‑array via cfb_reader::from_file(), cfb_reader::from_stream() of cfb_reader::from_bytes().
  • Doorloop de directoryboom: Enumereer opslagplaatsen en streams met storage_ids(), stream_ids() en child_ids(), en navigeer door geneste hiërarchieën met resolve_path().
  • Inspecteer knooppunten: Controleer knooptype met cfb_node::is_storage() en cfb_node::is_stream(), lees tijdstempels via creation_time() en modified_time().
  • CFB-containers schrijven: Bouw CFB-documenten programmatisch met cfb_document en serialiseer naar bytes of bestand via cfb_writer::to_bytes() of cfb_writer::write_file().

Waar CFB-toegang wordt gebruikt

  • MSG-bestandsinspectie: CFB is het containerformaat voor Outlook .msg bestanden — directe CFB-toegang maakt forensische inspectie en reparatie mogelijk.
  • Aangepaste binaire formaten: Elke legacy‑applicatie die CFB gebruikt voor gegevensopslag kan worden gelezen of geschreven zonder een COM‑afhankelijkheid.
  • Gegevensherstel: Doorloop de volledige directoryboom en extraheer ruwe streambytes van beschadigde of niet-standaard CFB-bestanden.

MSG-bestand lezen en schrijven

  • Lees MSG-bestanden: Open Outlook MSG-bestanden met msg_reader::from_file() of msg_reader::from_stream() en krijg toegang tot de onderliggende MAPI‑eigenschapsstreams en bijlage‑subopslagplaatsen.
  • MSG-bestanden schrijven: Genereer MSG-bestanden vanuit een msg_document met msg_writer::to_bytes() of msg_writer::write_file().
  • MSG document inspection: Toegang tot versie‑metadata via msg_document::major_version(), msg_document::minor_version(), en controleer de strengheid met msg_document::strict().
  • Converteren naar CFB: Haal het onderliggende CFB‑document uit een MSG‑bestand via msg_document::to_cfb_document().

Waar MSG-verwerking wordt gebruikt

  • Email archival pipelines: Bulk-read .msg bestanden uit archiefmappen en extraheer metadata of bijlagen.
  • Migratietools: Converteer MSG-collecties naar standaardformaten voor import in niet-Outlook-systemen.
  • Juridische ontdekking: Parse ruwe MAPI‑eigenschapstromen om alle berichtvelden te extraheren, inclusief niet‑standaard eigenschappen.

High-Level MAPI-bericht-API

  • Berichten maken: Bouw een volledige e‑mail met mapi_message::create(), stel vervolgens onderwerp, body en HTML body in via set_subject(), set_body() en set_html_body().
  • Stel afzendergegevens in: Configureer set_sender_name(), set_sender_email_address() en set_sender_address_type() voor het uitgaande bericht.
  • Beheer bijlagen: Laad bijlagen vanuit bytes of streams met mapi_attachment::from_bytes() en mapi_attachment::from_stream(), en controleer op ingesloten berichten via is_embedded_message().
  • Opslaan en opnieuw laden: Serialiseer met mapi_message::save() en laad opnieuw met mapi_message::from_file() of mapi_message::from_stream().

Waar de High-Level API wordt gebruikt

  • Geautomatiseerde e‑mailgeneratie: Genereer duizenden gepersonaliseerde MSG‑bestanden uit gegevensrecords in batch‑taken.
  • Testfixturecreatie: Bouw bekende, correcte MSG-bestanden met voorspelbare inhoud voor integratietestsuites.
  • Extractie van bijlagen: Laad een MSG‑bestand, doorloop de bijlagen en sla elke op naar schijf.

EML- en MIME-conversie

  • Load EML into mapi_message: Parse een standaard .eml bestand (RFC 5322 / MIME) naar een volledig mapi_message object via mapi_message::load_from_eml().
  • Save mapi_message as EML: Serialiseer een mapi_message terug naar MIME-indeling met save_to_eml().
  • Rondreisnauwkeurigheid: Onderwerp, inhoud, afzender, ontvangers en bijlagen blijven behouden tijdens EML-naar-MSG-naar-EML rondreizen.

Waar EML-conversie wordt gebruikt

  • Format bridging: Ontvang e‑mails als EML van mailservers en converteer ze naar MSG voor Outlook‑compatibele opslag.
  • Naleving van standaarden: Converteer propriëtaire MSG-bestanden naar standaard MIME voor levering aan elk mailtransport.
  • Archiveringsnormalisatie: Normaliseer een gemengd archief van .eml en .msg bestanden naar één formaat.

Onderwerp lezen uit een MSG-bestand

Open een Outlook MSG‑bestand vanuit een stream en druk het onderwerp af — geen Microsoft Outlook vereist.

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

Een MSG-bericht maken en opslaan

Bouw een volledige e‑mail met afzender, ontvanger en bijlage, en schrijf deze vervolgens naar zowel MSG- als EML-formaten.

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

Ondersteuning en leermiddelen

 Nederlands