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

Aspose.Email FOSS per a C++

Llegeix, crea i processa fitxers Outlook MSG i contenidors CFB des de C++ — gratuïta i de codi obert, sense dependència de Microsoft Outlook.

Biblioteca C++ de codi obert per a fitxers MSG i CFB

Aspose.Email FOSS per a C++ és una biblioteca C++ de codi obert amb llicència MIT per treballar amb fitxers .msg de Microsoft Outlook i contenidors Compound File Binary (CFB). Incloeu les capçaleres mitjançant CMake i comenceu immediatament a llegir, crear i processar missatges de correu electrònic sense instal·lar Microsoft Outlook ni cap entorn d’execució propietari.

La biblioteca ofereix dos nivells d’accés. A nivell baix, cfb_reader i cfb_writer donen control total sobre contenidors binaris CFB — recórrer les entrades del directori, llegir i escriure nodes d’emmagatzematge i dades de flux, i inspeccionar la disposició bruta dels sectors. msg_reader i msg_writer gestionen el format MSG sobre CFB, exposant fluxos de propietats MAPI, taules de destinataris i subemmagatzematges d’adjuncions. A nivell alt, mapi_message et permet crear nous missatges des de zero, llegir temes, cossos, destinataris i adjuncions, i convertir entre els formats MSG i EML. La biblioteca es construeix en qualsevol plataforma amb un compilador C++17 i no té dependències externes, la qual cosa la fa adequada per a Windows, Linux, macOS, contenidors Docker i sistemes incrustats. Una edició empresarial amb funcions addicionals s’ofereix com Aspose.Email for C++.

Lectura i escriptura de contenidors CFB

  • Obrir fitxers CFB: Carrega contenidors CFB existents des d’una ruta de fitxer, flux o matriu de bytes mitjançant cfb_reader::from_file(), cfb_reader::from_stream() o cfb_reader::from_bytes().
  • Recórrer l’arbre de directoris: Enumerar emmagatzematges i fluxos utilitzant storage_ids(), stream_ids() i child_ids(), i navegar per jerarquies anidades amb resolve_path().
  • Inspecciona nodes: Comprova el tipus de node amb cfb_node::is_storage() i cfb_node::is_stream(), llegeix les marques de temps via creation_time() i modified_time().
  • Escriure contenidors CFB: Construeix documents CFB de manera programàtica amb cfb_document i serialitza a bytes o fitxer mitjançant cfb_writer::to_bytes() o cfb_writer::write_file().

On s'utilitza l'accés CFB

  • Inspecció de fitxers MSG: CFB és el format de contenidor per a fitxers .msg d’Outlook — l’accés directe a CFB permet la inspecció forense i la reparació.
  • Formats binaris personalitzats: Qualsevol aplicació antiga que utilitzi CFB per a l’emmagatzematge de dades pot ser llegida o escrita sense una dependència COM.
  • Recuperació de dades: Recorre tot l’arbre de directoris i extreu els bytes del flux en brut de fitxers CFB danyats o no estàndard.

Lectura i escriptura de fitxers MSG

  • Llegir fitxers MSG: Obriu fitxers MSG d’Outlook amb msg_reader::from_file() o msg_reader::from_stream() i accediu als fluxos de propietats MAPI subjacents i als submagatzems d’adjuncions.
  • Escriu fitxers MSG: Produïu fitxers MSG a partir d’un msg_document amb msg_writer::to_bytes() o msg_writer::write_file().
  • Inspecció de documents MSG: Accediu a les metadades de la versió a través de msg_document::major_version(), msg_document::minor_version(), i comproveu la rigorositat amb msg_document::strict().
  • Convertir a CFB: Extreu el document CFB subjacient d’un fitxer MSG mitjançant msg_document::to_cfb_document().

On s'utilitza el processament de MSG

  • Email archival pipelines: Lectura massiva de fitxers .msg des de directoris d’arxiu i extreure metadades o adjunts.
  • Eines de migració: Convertir col·leccions MSG a formats estàndard per a la importació en sistemes que no siguin Outlook.
  • Descobriment legal: Analitza fluxos de propietats MAPI en brut per extreure tots els camps del missatge, inclosos els propietats no estàndard.

API de missatge MAPI d’alt nivell

  • Crea missatges: Construeix un correu electrònic complet amb mapi_message::create(), després estableix l’assumpte, el cos i el cos HTML mitjançant set_subject(), set_body() i set_html_body().
  • Estableix els detalls del remitent: Configura set_sender_name(), set_sender_email_address() i set_sender_address_type() per al missatge sortint.
  • Gestiona els fitxers adjunts: Carrega els fitxers adjunts des de bytes o fluxos amb mapi_attachment::from_bytes() i mapi_attachment::from_stream(), i comprova si hi ha missatges incrustats mitjançant is_embedded_message().
  • Desa i recarrega: Serialitza amb mapi_message::save() i recarrega amb mapi_message::from_file() o mapi_message::from_stream().

On s'utilitza l'API d'alt nivell

  • Generació automàtica de correus electrònics: Genereu milers de fitxers MSG personalitzats a partir de registres de dades en tasques per lots.
  • Creació de fixtures de prova: Construeix fitxers MSG de confiança amb contingut previsible per a suites de proves d’integració.
  • Extracció d’adjunts: Carrega un fitxer MSG, itera els adjunts i desa cada un al disc.

Conversió d’EML i MIME

  • Carrega EML a mapi_message: Analitza un fitxer .eml estàndard (RFC 5322 / MIME) en un objecte mapi_message complet mitjançant mapi_message::load_from_eml().
  • Desar mapi_message com a EML: Serialitza un mapi_message de tornada al format MIME amb save_to_eml().
  • Fidelitat de viatge d’anada i tornada: L’assumpte, el cos, l’emissor, els destinataris i els fitxers adjunts es conserven en els viatges d’anada i tornada d’EML a MSG a EML.

On s'utilitza la conversió d'EML

  • Format bridging: Rebre correus electrònics com a EML des dels servidors de correu i convertir-los a MSG per a un emmagatzematge compatible amb Outlook.
  • Compliment de normes: Converteix fitxers MSG propietaris a MIME estàndard per a l’entrega a qualsevol transport de correu.
  • Normalització d’arxius: Normalitza un arxiu mixt de fitxers .eml i .msg a un format únic.

Llegeix l’assumpte d’un fitxer MSG

Obre un fitxer Outlook MSG des d’un flux i imprimeix l’assumpte — no cal Microsoft Outlook.

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

Crea i desa un missatge MSG

Creeu un correu electrònic complet amb remitent, destinatari i adjunt, i després deseu-lo tant en format MSG com en format 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);
}
  

Suport i recursos d aprenentatge

 Català