1. Productos
  2.   Aspose.Email
  3.   Aspose.Email FOSS for C++

Aspose.Email FOSS para C++

Lee, crea y procesa archivos Outlook MSG y contenedores CFB desde C++ — gratuito y de código abierto, sin dependencia de Microsoft Outlook.

Biblioteca de C++ de código abierto para archivos MSG y CFB

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++.

Lectura y escritura de contenedores CFB

  • Abrir archivos CFB: Cargue contenedores CFB existentes desde una ruta de archivo, flujo o matriz de bytes mediante cfb_reader::from_file(), cfb_reader::from_stream() o cfb_reader::from_bytes().
  • Recorrer el árbol de directorios: Enumerar almacenes y flujos usando storage_ids(), stream_ids() y child_ids(), y navegar jerarquías anidadas con resolve_path().
  • Inspeccionar nodos: Verificar el tipo de nodo con cfb_node::is_storage() y cfb_node::is_stream(), leer marcas de tiempo a través de creation_time() y modified_time().
  • Escribir contenedores CFB: Construya documentos CFB programáticamente con cfb_document y serialícelo a bytes o archivo mediante cfb_writer::to_bytes() o cfb_writer::write_file().

Dónde se utiliza el acceso CFB

  • Inspección de archivos MSG: CFB es el formato contenedor para archivos .msg de Outlook — el acceso directo a CFB permite la inspección forense y la reparación.
  • Formatos binarios personalizados: Cualquier aplicación heredada que use CFB para el almacenamiento de datos puede leerse o escribirse sin una dependencia COM.
  • Recuperación de datos: Recorrer todo el árbol de directorios y extraer los bytes de flujo sin procesar de archivos CFB dañados o no estándar.

Lectura y escritura de archivos MSG

  • Read MSG files: Abra archivos MSG de Outlook con msg_reader::from_file() o msg_reader::from_stream() y acceda a los flujos de propiedades MAPI subyacentes y a los subalmacenes de adjuntos.
  • Write MSG files: Produce archivos MSG a partir de un msg_document con msg_writer::to_bytes() o msg_writer::write_file().
  • Inspección de documento MSG: Acceda a los metadatos de versión a través de msg_document::major_version(), msg_document::minor_version(), y verifique la rigurosidad con msg_document::strict().
  • Convertir a CFB: Extraiga el documento CFB subyacente de un archivo MSG mediante msg_document::to_cfb_document().

Dónde se utiliza el procesamiento de MSG

  • Email archival pipelines: Lectura masiva de archivos .msg desde directorios de archivo y extraer metadatos o adjuntos.
  • Herramientas de migración: Convertir colecciones MSG a formatos estándar para importación en sistemas que no son Outlook.
  • Descubrimiento legal: Analiza flujos de propiedades MAPI sin procesar para extraer todos los campos del mensaje, incluidas las propiedades no estándar.

API de Mensajes MAPI de Alto Nivel

  • Crear mensajes: Construye un correo electrónico completo con mapi_message::create(), luego establece el asunto, el cuerpo y HTML cuerpo mediante set_subject(), set_body() y set_html_body().
  • Establecer detalles del remitente: Configure set_sender_name(), set_sender_email_address() y set_sender_address_type() para el mensaje saliente.
  • Administrar archivos adjuntos: Cargue archivos adjuntos desde bytes o flujos con mapi_attachment::from_bytes() y mapi_attachment::from_stream(), y verifique los mensajes incrustados mediante is_embedded_message().
  • Guardar y recargar: Serializar con mapi_message::save() y recargar con mapi_message::from_file() o mapi_message::from_stream().

Dónde se utiliza la API de alto nivel

  • Generación automática de correos electrónicos: Genere miles de archivos MSG personalizados a partir de registros de datos en trabajos por lotes.
  • Creación de fixtures de prueba: Construir archivos MSG de buena calidad conocidos con contenido predecible para los conjuntos de pruebas de integración.
  • Extracción de adjuntos: Cargue un archivo MSG, itere los adjuntos y guarde cada uno en el disco.

Conversión de EML y MIME

  • Load EML into mapi_message: Analizar un archivo .eml estándar (RFC 5322 / MIME) en un objeto mapi_message completo a través de mapi_message::load_from_eml().
  • Guardar mapi_message como EML: Serializar un mapi_message de nuevo al formato MIME con save_to_eml().
  • Fidelidad de ida y vuelta: El asunto, el cuerpo, el remitente, los destinatarios y los archivos adjuntos se conservan en los viajes de ida y vuelta de EML a MSG a EML.

Dónde se utiliza la conversión de EML

  • Puente de formato: Reciba correos electrónicos como EML de los servidores de correo y conviértalos a MSG para almacenamiento compatible con Outlook.
  • Cumplimiento de estándares: Convertir archivos MSG propietarios a MIME estándar para la entrega a cualquier transporte de correo.
  • Normalización de archivos: Normalice un archivo mixto de archivos .eml y .msg a un solo formato.

Leer el asunto de un archivo MSG

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';
}

Crear y guardar un mensaje MSG

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);
}
  

Recursos de soporte y aprendizaje

 Español