FOSS pentru C++ este o bibliotecă open-source MIT, licențiată în C++, care funcționează cu fișierele Microsoft Outlook .msg și containere Compound File Binary (CFB). Includeți capetele prin CMake și începeți imediat să citiți, creați și prelucrați mesajele de e-mail fără a instala Microsoft Excel sau orice runtime proprietar.
Biblioteca oferă două niveluri de acces. La nivelul inferior, cfb_reader și cfb_writer dau control complet asupra containerelor binare CFB intrările directoriilor traversale, citesc și scriu nodurile de stocare și fluxurile datelor și inspectează structura sectorului brut. msg_reader şi msg_writer gestionează formatul MSG deasupra CF B, expunând fluxuri ale proprietății MAPI, tabele destinatarilor și sub-stocări de atașamente. la nivel înalt,mapi_message vă permite să creați noi mesaje de la zero, citiți subiecte, destinatari și corpuri și să convertiți între formatele MS G și EML.
Biblioteca se construiește pe orice platformă cu un compilator C++17 și nu are dependențe externe, făcându-l potrivit pentru Windows, Linux, macOS, containere Docker și sisteme încorporate.
O ediție pentru întreprinderi cu caracteristici suplimentare este oferită sub numele de 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 navigați în ierarhii cuibăstrate cu resolve_path().cfb_node::is_storage() și cfb_node::is_stream(), citiți timestamps prin intermediul creation_time() si modified_time().cfb_document și serializați în baiti sau fișier prin cfb_writer::to_bytes() sau cfb_writer::write_file()..msg accesul direct la CF B permite inspecție și reparare forensică.msg_reader::from_file() sau msg_reader::from_stream() și accesați fluxurile de proprietate MAPI subiacentă și subspațelele de stocare a atașamentelor.msg_document cu msg_writer::to_bytes() sau msg_writer::write_file().msg_document::major_version(), msg_document::minor_version() și verificarea rigurozității cu msg_document::strict().msg_document::to_cfb_document()..msg citite în masă din directorii de archive și extrag metadate sau atașamente.mapi_message::create(), apoi setati subiectul, corpul și corpusul HTML prin intermediul set_subject() , set_body() și set_html_body().set_sender_name(), set_sender_email_address() și set_sender_address_type() pentru mesajul ieșitor.mapi_attachment::from_bytes() și mapi_attachment::from_stream(), și verificați dacă există mesaje încorporate prin intermediul is_embedded_message().mapi_message::save() și încărcare cumapi_message::from_file() sau mapi_message::from_stream()..eml (RFC 5322 / MIME) într-un obiect complet mapi_message prin intermediul mapi_message::load_from_eml().mapi_message înapoi în format MIME cu save_to_eml()..eml și .msg într-un singur format.Deschideți un fișier Outlook MSG dintr-un flux și imprimați 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ți în ambele formate 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);
}