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

Aspose.Email FOSS for C++

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

Open-Source C++ Library 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. Voeg de headers toe via CMake en begin onmiddellijk met het lezen, maken en verwerken van e‑mailberichten zonder Microsoft Outlook of een propriëtaire runtime te installeren.

De bibliotheek biedt twee niveaus van toegang. Op laag 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‑eigenschapstreams, ontvangerstabellen en bijlage‑sub‑storages toegankelijk. Op hoog 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 werkt 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 Lees en Schrijf

  • Open CFB-bestanden: Laad bestaande CF B containers van een bestandspad, stream of byte array via cfb_reader::from_file(), cfb_reader::from_stream() of cfb_reader::from_bytes().
  • ** Doorlopen van de directory tree:** Opsommen opslag en streams met storage_ids(), stream_ids(), en child_ids() , en navigeren in genestelde hiërarchieën metresolve_path().
  • ** Controleer knooppunten:** Controleer het type knooppunt met cfb_node::is_storage() en cfb_node::is_stream(), lees tijdstempels via creation_time() and modified_time().
  • ** CFB-containers schrijven:** Programmatisch bouwen van CF B-documenten met cfb_document en serialiseren naar bytes of bestanden via cfb_writer::to_bytes() of cfb_writer::write_file().

Waar CFB-toegang wordt gebruikt

  • MSG-bestandinspectie: CFB is het containerformaat voor Outlook .msg bestanden directe toegang tot CF B maakt forensisch onderzoek en reparatie mogelijk.
  • Aangepaste binaire formaten: Elke oude toepassing die CFB voor gegevensopslag gebruikt, kan zonder COM-afhankelijkheid worden gelezen of geschreven.
  • ** Data recovery:** Doorlopen van de volledige directory tree en extraher ruwe stream bytes uit beschadigde of niet-standaard CFB bestanden.

MSG-bestand Lezen en Schrijven

  • ** MSG-bestanden lezen:** Open Outlook MS G- bestanden met msg_reader::from_file() of msg_reader::from_stream() en toegang tot de onderliggende MAPI eigenschap stromen en bijlagen sub-opslag.
  • ** MSG-bestanden schrijven:** MS G- bestanden maken van een msg_document met msg_writer::to_bytes() of msg_writer::write_file().
  • MSG-documentinspectie: Toegang tot versie metadata via msg_document::major_version(), msg_document::minor_version() en controleer de strengheid met msg_document::strict().
  • ** Omzetten naar CFB:** Extraher het onderliggende CF B-document uit een MSG-bestand via msg_document::to_cfb_document().

Waar MSG-verwerking wordt gebruikt

  • E-mail archiefpipelines: Bulk-read .msg bestanden uit archiveringsmappen en extracteren metagegevens of bijlagen.
  • Migratie-tools: Converteren van MSG-collecties naar standaardformaten voor invoer in systemen die niet uit Outlook bestaan.
  • Legale ontdekking: Parse raw MAPI-eigendomsstromen om alle berichtvelden, inclusief niet-standaard eigenschappen, te extraheren.

MAPI-boodschappen API van hoog niveau

  • Messages maken: Een complete e-mail bouwen met mapi_message::create(), en vervolgens onderwerp, lichaam en HTML-lichaam instellen via set_subject(), set_body() en set_html_body().
  • ** Zet verzendergegevens:** Configureer set_sender_name(), set_sender_email_address() en set_sender_address_type() voor het uitgaande bericht.
  • ** Beheer bijlagen:** Laad bijvoegingen van bytes of streams met mapi_attachment::from_bytes() en mapi_attachment::from_stream(), en controleer op ingebedde berichten via is_embedded_message().
  • ** Bewaar en herladen:** Serialiseren met mapi_message::save() en opnieuw laden metmapi_message::from_file() of mapi_message::from_stream().

Waar de High-Level API wordt gebruikt

  • Automatische e-mailgeneratie: Genereren van duizenden gepersonaliseerde MSG bestanden uit gegevens records in batch jobs.
  • Creatie van testinstallaties: Maak bekende MSG-bestanden met voorspelbare inhoud voor integratietests.
  • ** Bijlage-extractie:** Laad een MSG-bestand op, iterer bijlagen en bewaar elk op schijf.

EML- en MIME-conversie

  • ** EML laden in mapi_message:** Een standaard .eml-bestand (RFC 5322 / MIME) analyseren naar een volledig mapi_message-object via mapi_message::load_from_eml().
  • Spaar mapi_message als EML: Seriealiseren van een mapi_message terug naar MIME-formaat met save_to_eml().
  • Rondreis-getrouwheid: Onderwerp, lichaam, afzender, ontvanger en bijlagen worden bewaard door EML naar MSG naar EM L rondreizen.

Waar EML-omzetting wordt gebruikt

  • Format overbrugging: Ontvang e-mails als EML van mailservers en converteer naar MSG voor Outlook-compatibele opslag.
  • Standaarden: Omzetten van eigen MSG-bestanden naar standaard MIME voor levering aan eerdere postvervoerders.
  • Archivaal normaliseren: Een gemengd archief van .eml en .msg bestanden tot één formaat normalisering.

Lees onderwerp uit een MSG-bestand

Open een Outlook MSG-bestand vanuit een stream en druk het onderwerp geen Microsoft Outlook nodig.

#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

Maak een complete e-mail met afzender, ontvanger en bijlage. Schrijf het dan in 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