Aspose.Email FOSS dla C++ to biblioteka C++ na licencji MIT, otwartoźródłowa, służąca do pracy z plikami .msg Microsoft Outlook oraz kontenerami Compound File Binary (CFB). Dołącz nagłówki za pomocą CMake i od razu zacznij odczytywać, tworzyć i przetwarzać wiadomości e‑mail bez instalowania Microsoft Outlook ani żadnego własnościowego środowiska uruchomieniowego.
Biblioteka zapewnia dwa poziomy dostępu. Na niskim poziomie cfb_reader i cfb_writer dają pełną kontrolę nad binarnymi kontenerami CFB — przeglądanie wpisów katalogu, odczyt i zapis węzłów magazynu oraz danych strumieni, oraz inspekcję surowego układu sektorów. msg_reader i msg_writer obsługują format MSG na bazie CFB, udostępniając strumienie właściwości MAPI, tabele odbiorców i podmagazyny załączników. Na wysokim poziomie mapi_message pozwala tworzyć nowe wiadomości od podstaw, odczytywać tematy, treści, odbiorców i załączniki oraz konwertować między formatami MSG i EML.
Biblioteka buduje się na dowolnej platformie z kompilatorem C++17 i nie ma zewnętrznych zależności, co czyni ją odpowiednią dla Windows, Linux, macOS, kontenerów Docker oraz systemów wbudowanych.
Wersja enterprise z dodatkowymi funkcjami jest oferowana jako Aspose.Email for C++.
cfb_reader::from_file(), cfb_reader::from_stream() lub cfb_reader::from_bytes().storage_ids(), stream_ids() i child_ids(), oraz nawiguj po zagnieżdżonych hierarchiach przy użyciu resolve_path().cfb_node::is_storage() i cfb_node::is_stream(), odczytaj znaczniki czasu za pomocą creation_time() i modified_time().cfb_document i serializuj do bajtów lub pliku za pomocą cfb_writer::to_bytes() lub cfb_writer::write_file()..msg — bezpośredni dostęp do CFB umożliwia forensyczną inspekcję i naprawę.msg_reader::from_file() lub msg_reader::from_stream() i uzyskaj dostęp do podstawowych strumieni właściwości MAPI oraz podmagazynów załączników.msg_document przy użyciu msg_writer::to_bytes() lub msg_writer::write_file().msg_document::major_version(), msg_document::minor_version() i sprawdź rygorystyczność przy użyciu msg_document::strict().msg_document::to_cfb_document()..msg z katalogów archiwum i wyodrębnij metadane lub załączniki.mapi_message::create(), a następnie ustaw temat, treść i HTML treść za pomocą set_subject(), set_body() i set_html_body().set_sender_name(), set_sender_email_address() i set_sender_address_type() dla wiadomości wychodzącej.mapi_attachment::from_bytes() i mapi_attachment::from_stream(), oraz sprawdzaj wiadomości osadzone za pomocą is_embedded_message().mapi_message::save() i wczytaj przy użyciu mapi_message::from_file() lub mapi_message::from_stream()..eml (RFC 5322 / MIME) do pełnego obiektu mapi_message za pomocą mapi_message::load_from_eml().mapi_message z powrotem do formatu MIME przy użyciu save_to_eml()..eml i .msg do jednego formatu.Otwórz plik Outlook MSG ze strumienia i wydrukuj temat — nie wymaga 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';
}
Utwórz kompletną wiadomość e‑mail z nadawcą, odbiorcą i załącznikiem, a następnie zapisz ją w formatach 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);
}