Aspose.Email FOSS pour C++ est une bibliothèque C++ open-source sous licence MIT, destinée à travailler avec les fichiers .msg de Microsoft Outlook et les conteneurs Compound File Binary (CFB). Incluez les en-têtes via CMake et commencez immédiatement à lire, créer et traiter les messages électroniques sans installer Microsoft Outlook ni aucun runtime propriétaire.
La bibliothèque offre deux niveaux d’accès. Au niveau bas, cfb_reader et cfb_writer donnent un contrôle complet sur les conteneurs binaires CFB — parcourir les entrées de répertoire, lire et écrire les nœuds de stockage et les données de flux, et inspecter la disposition brute des secteurs. msg_reader et msg_writer gèrent le format MSG au-dessus de CFB, exposant les flux de propriétés MAPI, les tables de destinataires et les sous‑stockages de pièces jointes. Au niveau élevé, mapi_message vous permet de créer de nouveaux messages à partir de zéro, de lire les sujets, les corps, les destinataires et les pièces jointes, et de convertir entre les formats MSG et EML.
La bibliothèque se construit sur n’importe quelle plateforme disposant d’un compilateur C++17 et n’a aucune dépendance externe, ce qui la rend adaptée à Windows, Linux, macOS, les conteneurs Docker et les systèmes embarqués.
Une édition entreprise avec des fonctionnalités supplémentaires est proposée en tant que Aspose.Email for C++.
cfb_reader::from_file(), cfb_reader::from_stream() ou cfb_reader::from_bytes().storage_ids(), stream_ids() et child_ids(), et naviguer dans les hiérarchies imbriquées avec resolve_path().cfb_node::is_storage() et cfb_node::is_stream(), lisez les horodatages via creation_time() et modified_time().cfb_document et sérialisez-les en octets ou en fichier via cfb_writer::to_bytes() ou cfb_writer::write_file()..msg — l’accès direct à CFB permet une inspection et une réparation médico-légales.msg_reader::from_file() ou msg_reader::from_stream() et accédez aux flux de propriétés MAPI sous-jacents ainsi qu’aux sous-stockages des pièces jointes.msg_document avec msg_writer::to_bytes() ou msg_writer::write_file().msg_document::major_version(), msg_document::minor_version(), et vérifiez la rigueur avec msg_document::strict().msg_document::to_cfb_document()..msg depuis les répertoires d’archive et extraire les métadonnées ou les pièces jointes.mapi_message::create(), puis définissez le sujet, le corps et le corps HTML via set_subject(), set_body() et set_html_body().set_sender_name(), set_sender_email_address() et set_sender_address_type() pour le message sortant.mapi_attachment::from_bytes() et mapi_attachment::from_stream(), et vérifier les messages incorporés via is_embedded_message().mapi_message::save() et recharger avec mapi_message::from_file() ou mapi_message::from_stream()..eml standard (RFC 5322 / MIME) en un objet mapi_message complet via mapi_message::load_from_eml().mapi_message au format MIME avec save_to_eml()..eml et .msg en un format unique.Ouvrez un fichier Outlook MSG à partir d’un flux et affichez l’objet — aucun Microsoft Outlook requis.
#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';
}
Créez un e‑mail complet avec l’expéditeur, le destinataire et la pièce jointe, puis enregistrez‑le aux formats MSG et EML.
#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);
}