Aspose.Email FOSS para C++ es una biblioteca C++ de código abierto bajo licencia MIT, diseñada para trabajar con archivos .msg de Microsoft Outlook y contenedores Compound File Binary (CFB). Incluya los encabezados mediante CMake y comience de inmediato a leer, crear y procesar mensajes de correo electrónico sin instalar Microsoft Outlook ni ningún runtime propietario.
La biblioteca proporciona dos niveles de acceso. En el nivel bajo, cfb_reader y cfb_writer dan control total sobre contenedores binarios CFB — recorrer entradas de directorio, leer y escribir nodos de almacenamiento y datos de flujo, e inspeccionar el diseño bruto de sectores. msg_reader y msg_writer manejan el formato MSG sobre CFB, exponiendo flujos de propiedades MAPI, tablas de destinatarios y subalmacenamientos de adjuntos. En el nivel alto, mapi_message le permite crear nuevos mensajes desde cero, leer asuntos, cuerpos, destinatarios y adjuntos, y convertir entre los formatos MSG y EML.
La biblioteca se compila en cualquier plataforma con un compilador C++17 y no tiene dependencias externas, lo que la hace adecuada para Windows, Linux, macOS, contenedores Docker y sistemas embebidos.
Una edición empresarial con funciones adicionales se ofrece como Aspose.Email for C++.
cfb_reader::from_file(), cfb_reader::from_stream() o cfb_reader::from_bytes().storage_ids(), stream_ids() y child_ids(), y navegar jerarquías anidadas con resolve_path().cfb_node::is_storage() y cfb_node::is_stream(), leer marcas de tiempo a través de creation_time() y modified_time().cfb_document y serialícelo a bytes o archivo mediante cfb_writer::to_bytes() o cfb_writer::write_file()..msg de Outlook — el acceso directo a CFB permite la inspección forense y la reparación.msg_reader::from_file() o msg_reader::from_stream() y acceda a los flujos de propiedades MAPI subyacentes y a los subalmacenes de adjuntos.msg_document con msg_writer::to_bytes() o msg_writer::write_file().msg_document::major_version(), msg_document::minor_version(), y verifique la rigurosidad con msg_document::strict().msg_document::to_cfb_document()..msg desde directorios de archivo y extraer metadatos o adjuntos.mapi_message::create(), luego establece el asunto, el cuerpo y HTML cuerpo mediante set_subject(), set_body() y set_html_body().set_sender_name(), set_sender_email_address() y set_sender_address_type() para el mensaje saliente.mapi_attachment::from_bytes() y mapi_attachment::from_stream(), y verifique los mensajes incrustados mediante is_embedded_message().mapi_message::save() y recargar con mapi_message::from_file() o mapi_message::from_stream()..eml estándar (RFC 5322 / MIME) en un objeto mapi_message completo a través de mapi_message::load_from_eml().mapi_message de nuevo al formato MIME con save_to_eml()..eml y .msg a un solo formato.Abra un archivo MSG de Outlook desde un flujo e imprima el asunto — no se requiere 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';
}
Cree un correo electrónico completo con remitente, destinatario y archivo adjunto, y luego guárdelo en los formatos MSG y 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);
}