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++.
cfb_reader::from_file(), cfb_reader::from_stream() o cfb_reader::from_bytes().storage_ids(), stream_ids() e child_ids(), e navigare gerarchie nidificate con resolve_path().cfb_node::is_storage() e cfb_node::is_stream(), leggi i timestamp tramite creation_time() e modified_time().cfb_document e serializzali in byte o file tramite cfb_writer::to_bytes() o cfb_writer::write_file()..msg — l’accesso diretto a CFB consente l’ispezione forense e la riparazione.msg_reader::from_file() o msg_reader::from_stream() e accedi ai flussi di proprietà MAPI sottostanti e ai sottoarchivi degli allegati.msg_document con msg_writer::to_bytes() o msg_writer::write_file().msg_document::major_version(), msg_document::minor_version(), e controlla il rigore con msg_document::strict().msg_document::to_cfb_document()..msg dalle directory di archivio e estrazione dei metadati o degli allegati.mapi_message::create(), quindi imposta l’oggetto, il corpo e il corpo HTML tramite set_subject(), set_body() e set_html_body().set_sender_name(), set_sender_email_address() e set_sender_address_type() per il messaggio in uscita.mapi_attachment::from_bytes() e mapi_attachment::from_stream(), e verifica la presenza di messaggi incorporati tramite is_embedded_message().mapi_message::save() e ricarica con mapi_message::from_file() o mapi_message::from_stream()..eml standard (RFC 5322 / MIME) in un oggetto mapi_message completo tramite mapi_message::load_from_eml().mapi_message nuovamente al formato MIME con save_to_eml()..eml e .msg in un unico formato.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 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);
}