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

Aspose.Email FOSS pour C++

Lisez, créez et traitez les fichiers Outlook MSG et les conteneurs CFB depuis C++ — gratuit et open-source, sans dépendance à Microsoft Outlook.

Bibliothèque C++ open-source pour les fichiers MSG et CFB

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++.

Lecture et écriture de conteneur CFB

  • Ouvrir des fichiers CFB : Charger des conteneurs CFB existants à partir d’un chemin de fichier, d’un flux ou d’un tableau d’octets via cfb_reader::from_file(), cfb_reader::from_stream() ou cfb_reader::from_bytes().
  • Parcourir l’arborescence du répertoire: Énumérer les stockages et les flux en utilisant storage_ids(), stream_ids() et child_ids(), et naviguer dans les hiérarchies imbriquées avec resolve_path().
  • Inspecter les nœuds : Vérifiez le type de nœud avec cfb_node::is_storage() et cfb_node::is_stream(), lisez les horodatages via creation_time() et modified_time().
  • Écrire des conteneurs CFB: Créez des documents CFB de manière programmatique avec cfb_document et sérialisez-les en octets ou en fichier via cfb_writer::to_bytes() ou cfb_writer::write_file().

Où l'accès CFB est utilisé

  • Inspection de fichier MSG : CFB est le format de conteneur pour les fichiers Outlook .msg — l’accès direct à CFB permet une inspection et une réparation médico-légales.
  • Formats binaires personnalisés: Toute application héritée utilisant CFB pour le stockage des données peut être lue ou écrite sans dépendance COM.
  • Récupération de données: Parcourez l’arborescence complète du répertoire et extrayez les octets bruts du flux à partir de fichiers CFB endommagés ou non standard.

Lecture et écriture de fichier MSG

  • Lire les fichiers MSG: Ouvrez les fichiers Outlook MSG avec 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.
  • Écrire des fichiers MSG : Générer des fichiers MSG à partir d’un msg_document avec msg_writer::to_bytes() ou msg_writer::write_file().
  • Inspection du document MSG : Accédez aux métadonnées de version via msg_document::major_version(), msg_document::minor_version(), et vérifiez la rigueur avec msg_document::strict().
  • Convertir en CFB: Extraire le document CFB sous-jacent d’un fichier MSG via msg_document::to_cfb_document().

Où le traitement MSG est utilisé

  • Pipelines d’archivage des e‑mails: Lire en masse les fichiers .msg depuis les répertoires d’archive et extraire les métadonnées ou les pièces jointes.
  • Outils de migration: Convertir les collections MSG en formats standard pour les importer dans des systèmes non-Outlook.
  • Découverte juridique : Analysez les flux de propriétés MAPI bruts pour extraire tous les champs de message, y compris les propriétés non standard.

API de messages MAPI de haut niveau

  • Créer des messages : Construisez un e‑mail complet avec mapi_message::create(), puis définissez le sujet, le corps et le corps HTML via set_subject(), set_body() et set_html_body().
  • Définir les détails de l’expéditeur : Configurer set_sender_name(), set_sender_email_address() et set_sender_address_type() pour le message sortant.
  • Gérer les pièces jointes: Charger les pièces jointes à partir d’octets ou de flux avec mapi_attachment::from_bytes() et mapi_attachment::from_stream(), et vérifier les messages incorporés via is_embedded_message().
  • Enregistrer et recharger : Sérialiser avec mapi_message::save() et recharger avec mapi_message::from_file() ou mapi_message::from_stream().

Où l'API de haut niveau est utilisée

  • Génération automatisée d’e-mails: Générez des milliers de fichiers MSG personnalisés à partir d’enregistrements de données dans des travaux par lots.
  • Création de fixtures de test: Construire des fichiers MSG fiables avec un contenu prévisible pour les suites de tests d’intégration.
  • Extraction des pièces jointes : Chargez un fichier MSG, parcourez les pièces jointes et enregistrez chacune sur le disque.

Conversion EML et MIME

  • Charger le fichier EML dans mapi_message: Analyser un fichier .eml standard (RFC 5322 / MIME) en un objet mapi_message complet via mapi_message::load_from_eml().
  • Enregistrer mapi_message au format EML : Sérialiser un mapi_message au format MIME avec save_to_eml().
  • Intégrité du trajet aller-retour: Sujet, corps, expéditeur, destinataires et pièces jointes sont conservés lors des allers-retours EML vers MSG vers EML.

Où la conversion EML est utilisée

  • Passerelle de format: Recevez les e‑mails au format EML depuis les serveurs de messagerie et convertissez‑les en MSG pour un stockage compatible Outlook.
  • Conformité aux normes: Convertir les fichiers MSG propriétaires en MIME standard pour la livraison à tout transport de courrier.
  • Normalisation d’archivage: Normaliser une archive mixte de fichiers .eml et .msg en un format unique.

Lire l’objet d’un fichier MSG

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éer et enregistrer un message MSG

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

Ressources de support et d'apprentissage

 Français