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

Aspose.Email FOSS per C++

Leggi, crea e processa file Outlook MSG e contenitori CFB da C++ — gratuito e open source, senza dipendenza da Microsoft Outlook.

Libreria C++ open source per file MSG e CFB

Aspose.Email FOSS per C++ è una libreria C++ open-source con licenza MIT per lavorare con i file .msg di Microsoft Outlook e i contenitori Compound File Binary (CFB). Includi gli header tramite CMake e inizia subito a leggere, creare e processare i messaggi email senza installare Microsoft Outlook o alcun runtime proprietario.

La libreria fornisce due livelli di accesso. A livello basso, cfb_reader e cfb_writer offrono il controllo completo sui contenitori binari CFB — attraversano le voci di directory, leggono e scrivono nodi di storage e dati di stream, e ispezionano la disposizione grezza dei settori. msg_reader e msg_writer gestiscono il formato MSG sopra CFB, esponendo i flussi di proprietà MAPI, le tabelle dei destinatari e le sotto‑archiviazioni degli allegati. A livello alto, mapi_message consente di creare nuovi messaggi da zero, leggere oggetti, corpi, destinatari e allegati, e convertire tra i formati MSG ed EML. La libreria si compila su qualsiasi piattaforma con un compilatore C++17 e non ha dipendenze esterne, rendendola adatta a Windows, Linux, macOS, contenitori Docker e sistemi embedded. Un’edizione enterprise con funzionalità aggiuntive è offerta come Aspose.Email for C++.

Lettura e scrittura di contenitori CFB

  • Apri file CFB: Carica contenitori CFB esistenti da un percorso file, stream o array di byte tramite cfb_reader::from_file(), cfb_reader::from_stream() o cfb_reader::from_bytes().
  • Percorrere l’albero delle directory: Enumerare archivi e flussi usando storage_ids(), stream_ids() e child_ids(), e navigare gerarchie nidificate con resolve_path().
  • Ispeziona i nodi: Verifica il tipo di nodo con cfb_node::is_storage() e cfb_node::is_stream(), leggi i timestamp tramite creation_time() e modified_time().
  • Scrivi contenitori CFB: Crea documenti CFB programmaticamente con cfb_document e serializzali in byte o file tramite cfb_writer::to_bytes() o cfb_writer::write_file().

Dove viene utilizzato l'accesso CFB

  • Ispezione file MSG: CFB è il formato contenitore per i file Outlook .msg — l’accesso diretto a CFB consente l’ispezione forense e la riparazione.
  • Formati binari personalizzati: Qualsiasi applicazione legacy che utilizza CFB per l’archiviazione dei dati può essere letta o scritta senza una dipendenza COM.
  • Recupero dati: Scorri l’intero albero delle directory ed estrai i byte grezzi del flusso da file CFB danneggiati o non standard.

Lettura e scrittura di file MSG

  • Leggi file MSG: Apri i file MSG di Outlook con msg_reader::from_file() o msg_reader::from_stream() e accedi ai flussi di proprietà MAPI sottostanti e ai sottoarchivi degli allegati.
  • Scrivi file MSG: Genera file MSG da un msg_document con msg_writer::to_bytes() o msg_writer::write_file().
  • Ispezione del documento MSG: Accedi ai metadati della versione tramite msg_document::major_version(), msg_document::minor_version(), e controlla il rigore con msg_document::strict().
  • Converti in CFB: Estrai il documento CFB sottostante da un file MSG tramite msg_document::to_cfb_document().

Dove viene utilizzata l'elaborazione MSG

  • Pipeline di archiviazione email: Lettura in blocco dei file .msg dalle directory di archivio e estrazione dei metadati o degli allegati.
  • Strumenti di migrazione: Converti le raccolte MSG in formati standard per l’importazione in sistemi non-Outlook.
  • Scoperta legale: Analizza i flussi di proprietà MAPI grezzi per estrarre tutti i campi del messaggio, incluse le proprietà non standard.

API Messaggi MAPI di alto livello

  • Crea messaggi: Costruisci un’email completa con mapi_message::create(), quindi imposta l’oggetto, il corpo e il corpo HTML tramite set_subject(), set_body() e set_html_body().
  • Imposta i dettagli del mittente: Configura set_sender_name(), set_sender_email_address() e set_sender_address_type() per il messaggio in uscita.
  • Gestisci gli allegati: Carica gli allegati da byte o stream con mapi_attachment::from_bytes() e mapi_attachment::from_stream(), e verifica la presenza di messaggi incorporati tramite is_embedded_message().
  • Salva e ricarica: Serializza con mapi_message::save() e ricarica con mapi_message::from_file() o mapi_message::from_stream().

Dove viene utilizzata l'API di alto livello

  • Generazione automatica di email: Genera migliaia di file MSG personalizzati dai record dei dati in lavori batch.
  • Creazione di fixture di test: Costruisci file MSG noti e corretti con contenuto prevedibile per le suite di test di integrazione.
  • Estrazione degli allegati: Carica un file MSG, itera gli allegati e salva ciascuno su disco.

Conversione EML e MIME

  • Carica EML in mapi_message: Analizza un file .eml standard (RFC 5322 / MIME) in un oggetto mapi_message completo tramite mapi_message::load_from_eml().
  • Salva mapi_message come EML: Serializza un mapi_message nuovamente al formato MIME con save_to_eml().
  • Fedeltà del round-trip: Oggetto, corpo, mittente, destinatari e allegati vengono conservati durante i round-trip da EML a MSG a EML.

Dove viene utilizzata la conversione EML

  • Collegamento di formato: Ricevi le email come EML dai server di posta e convertili in MSG per l’archiviazione compatibile con Outlook.
  • Conformità agli standard: Converti i file MSG proprietari in MIME standard per la consegna a qualsiasi trasporto di posta.
  • Normalizzazione dell’archivio: Normalizza un archivio misto di file .eml e .msg in un unico formato.

Leggi l’oggetto da un file MSG

Apri un file Outlook MSG da uno stream e stampa l’oggetto — non è necessario 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 e salva un messaggio MSG

Crea un’email completa con mittente, destinatario e allegato, quindi scrivila nei formati MSG ed 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);
}
  

Risorse di Supporto e Apprendimento

 Italiano