Aspose.Email FOSS pentru C++ este o bibliotecă C++ licențiată MIT, open-source, pentru lucrul cu fișiere .msg Microsoft Outlook și containere Compound File Binary (CFB). Includeți anteturile prin CMake și începeți imediat să citiți, să creați și să procesați mesaje de e‑mail fără a instala Microsoft Outlook sau orice runtime proprietar.
Biblioteca oferă două niveluri de acces. La nivelul scăzut, cfb_reader și cfb_writer oferă control complet asupra containerelor binare CFB — parcurgerea intrărilor de director, citirea și scrierea nodurilor de stocare și a datelor de flux, și inspectarea aranjamentului brut al sectoarelor. msg_reader și msg_writer gestionează formatul MSG deasupra CFB, expunând fluxurile de proprietăți MAPI, tabelele de destinatari și sub‑stocările de atașamente. La nivelul înalt, mapi_message vă permite să creați mesaje noi de la zero, să citiți subiecte, corpuri, destinatari și atașamente și să convertiți între formatul MSG și EML.
Biblioteca se compilează pe orice platformă cu un compilator C++17 și nu are dependențe externe, făcând-o potrivită pentru Windows, Linux, macOS, containere Docker și sisteme încorporate.
O ediție enterprise cu funcționalităţi suplimentare este oferită ca Aspose.Email for C++.
cfb_reader::from_file(), cfb_reader::from_stream() sau cfb_reader::from_bytes().storage_ids(), stream_ids() și child_ids(), și navighează ierarhiile imbricate cu resolve_path().cfb_node::is_storage() și cfb_node::is_stream(), citiți marcajele de timp prin creation_time() și modified_time().cfb_document și serializează-le în bytes sau fișier prin cfb_writer::to_bytes() sau cfb_writer::write_file()..msg — accesul direct la CFB permite inspectarea și repararea forensică.msg_reader::from_file() sau msg_reader::from_stream() și accesează fluxurile de proprietăți MAPI subiacente și sub‑stocările de atașamente.msg_document cu msg_writer::to_bytes() sau msg_writer::write_file().msg_document::major_version(), msg_document::minor_version() și verificați strictețea cu msg_document::strict().msg_document::to_cfb_document()..msg din directoarele de arhivă și extrage metadatele sau atașamentele.mapi_message::create(), apoi setaţi subiectul, corpul şi corpul HTML prin set_subject(), set_body() şi set_html_body().set_sender_name(), set_sender_email_address() și set_sender_address_type() pentru mesajul de ieșire.mapi_attachment::from_bytes() și mapi_attachment::from_stream(), și verificați mesajele încorporate prin is_embedded_message().mapi_message::save() și reîncărcați cu mapi_message::from_file() sau mapi_message::from_stream()..eml file (RFC 5322 / MIME) into a full mapi_message object via mapi_message::load_from_eml().mapi_message înapoi în format MIME cu save_to_eml()..eml și .msg la un singur format.Deschide un fișier Outlook MSG dintr-un flux și afișează subiectul — nu este necesar 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';
}
Construiți un e‑mail complet cu expeditor, destinatar și atașament, apoi scrie‑l în formatele MSG și 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);
}