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 offre due livelli di accesso. A livello basso, cfb_reader e cfb_writer forniscono il controllo completo sui contenitori binari CFB — attraversare le voci di directory, leggere e scrivere nodi di storage e dati di stream, e ispezionare 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 i sotto-storage degli allegati. A livello alto, mapi_message ti 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 per Windows, Linux, macOS, container 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 navigate nelle gerarchie annidate con resolve_path().cfb_node::is_storage() e cfb_node::is_stream(), leggere le timestamp tramite creation_time() ed modified_time().cfb_document e serializzare in byte o file tramite cfb_writer::to_bytes() o cfb_writer::write_file()..msg l’accesso diretto a CF B consente ispezioni e riparazioni forensi.msg_reader::from_file() o msg_reader::from_stream() e accedere ai flussi di proprietà MAPI sottostanti e alle sottoricoltura degli allegati.msg_document con msg_writer::to_bytes() o msg_writer::write_file().msg_document::major_version(), msg_document::minor_version() e verificare la rigidità con msg_document::strict().msg_document::to_cfb_document()..msg da directory di archivio ed estrarre metadati o allegati.mapi_message::create(), quindi imposta argomento, corpo e 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 controlla se ci sono messaggi incorporati tramite is_embedded_message().mapi_message::save() e ricarica conmapi_message::from_file() o mapi_message::from_stream()..eml (RFC 5322 / MIME) in un oggetto completo mapi_message tramite mapi_message::load_from_eml().mapi_message in formato MIME con save_to_eml()..eml e .msg in un unico formato.Aprire un file MSG di Outlook da una stream e stampare 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, poi scrivila sia in formato MSG che 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);
}