1. Productos
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS for .NET

Leer, crear y procesar archivos Outlook MSG, contenedores CFB y mensajes EML desde .NET — gratuito y de código abierto, sin dependencia de Microsoft Outlook.

Biblioteca .NET de código abierto para archivos MSG, CFB y EML

Aspose.Email FOSS para .NET es una biblioteca C# con licencia MIT, sin dependencias, para trabajar con archivos .msg de Microsoft Outlook, contenedores Compound File Binary (CFB) y mensajes EML. Añade un único paquete NuGet y comienza de inmediato a leer, crear y procesar mensajes de correo electrónico sin instalar Microsoft Outlook ni ningún runtime propietario.

La biblioteca ofrece dos niveles de acceso. A bajo nivel, CfbReader y CfbWriter brindan control total sobre los contenedores binarios CFB — recorre entradas de directorio, lee y escribe nodos de almacenamiento y datos de flujo, e inspecciona la disposición cruda de sectores. MsgReader y MsgWriter manejan el formato MSG sobre CFB, exponiendo flujos de propiedades MAPI, tablas de destinatarios y sub‑almacenamientos de adjuntos. A alto nivel, MapiMessage te permite crear nuevos mensajes desde cero, leer el asunto, cuerpo, remitente y destinatarios, gestionar adjuntos y convertir entre los formatos MSG y EML mediante una implementación MIME incorporada.

La biblioteca está dirigida a .NET 8.0 o posterior y no tiene dependencias nativas, lo que la hace adecuada para Windows, Linux, macOS, contenedores Docker y funciones serverless. Para características adicionales y soporte comercial, consulta Aspose.Email for .NET.

Contenedores CFB Leer y escribir

  • Abrir archivos CFB: Cargar contenedores CFB existentes desde una ruta de archivo, flujo o matriz de bytes mediante CfbReader.FromFile(), CfbReader.FromStream() o new CfbReader(data).
  • Recorrer el árbol de directorios: Iterar almacenes, flujos y elementos secundarios usando IterStorages(), IterStreams(), IterChildren() y IterTree().
  • Resolver rutas: Navegar jerarquías de almacenamiento anidadas con ResolvePath(names) para localizar un flujo específico mediante una cadena de nombres.
  • Escribir contenedores CFB: Construir documentos CFB programáticamente con CfbDocument y serializarlos a bytes o archivo mediante CfbWriter.ToBytes() o CfbWriter.WriteFile().
  • Agregar almacenes y flujos: Adjuntar nodos CfbStorage y CfbStream a cualquier nodo de almacenamiento antes de la serialización.

Dónde se utiliza el acceso CFB

  • Inspección de archivos MSG: CFB es el formato de contenedor para los archivo de Outlook .msg — acceso directo a CFD permite la inspección y reparación forense.
  • Formatos binarios personalizados: Cualquier aplicación de herencia que utilice CFB para almacenamiento de datos puede ser leído o escrito sin una dependencia COM.
  • Recuperación de datos: Caminar por el árbol de directorio completo y extraer bajetas de corriente cruda de archivos CFB dañados o no estándar.
  • Test de ronda binario: Serializar un documento a bajetas y recargarlo para verificar la serificación sin pérdidas en los testes automatizados.

MSG File Leer y escribir

  • Lerga los archivos MSG: Abra los ficheros MS G de Outlook con MsgReader.FromFile() o MsgReader.FromStream() y acceda a las substramas de propiedades MAPI, registros de receptores y sub-encuentros del anexo.
  • Escribe archivos MSG: Produce archivo MSM de un MsgDocument con MsgWriter.ToBytes() o MsgWriter.WriteFile().
  • ** Acceso a MAPI de bajo nivel:** Leer los flujos de propiedades de alto nivel, las propiedad nombradas y los datos de anexo por medio de MsgStorage, MsgStream y MsgStorage.FindStream().
  • Navegación de almacenamiento MSG: Utilice MsgStorage.FindStream() y MsgStorage.FindStorage() para localizar los sub-encriptores nombrados.

Dónde se utiliza el procesamiento MSG

  • Púpoles de archivo de correo electrónico: Los archivos de lectura en gran parte .msg provienen de los directorios de Archivo y extraen metadatos o anexos.
  • Tools de migración: Convertir las colecciones MSG en formatos estándar para la importación a sistemas no Outlook.
  • Descubrimiento legal: Parse ricos flujos de propiedades MAPI para extraer todos los campos de mensaje, incluyendo las propicias no estándar.
  • **Enviado de informes automático:**Construye los archivos .msg programáticamente y envío a sistemas de correo basados en Outlook.

API de mensajes de alto nivel

  • Crear mensajes: Construya un correo electrónico completo con MapiMessage.Create(subject, body), establezca SenderName, SenderEmailAddress y HtmlBody.
  • Agregar destinatarios: Adjunte a los destinatarios To, Cc y Bcc mediante AddRecipient() con dirección de correo electrónico y nombre para mostrar.
  • Administrar archivos adjuntos: Añada archivos y adjuntos de flujo con AddAttachment() o construya objetos MapiAttachment directamente con Filename, MimeType, ContentId y Data.
  • Guardar y recargar: Serialice con message.Save() o message.Save(stream) y recargue con MapiMessage.FromFile() o MapiMessage.FromStream().

Dónde se utiliza la API de alto nivel

  • Generación automática de correos electrónicos: Generar miles de archivos MSG personalizados a partir de registros de datos en trabajos por lotes.
  • Creación de fixtures de prueba: Construir archivos MSG conocidos y correctos con contenido predecible para suites de pruebas de integración.
  • Extracción de adjuntos: Cargar un archivo MSG, iterar message.Attachments, y guardar cada attachment.Data en disco.
  • Inspección de propiedades: Acceder a message.Subject, message.Body, message.SenderEmailAddress y message.Recipients sin automatización COM.

EML y MIME Conversión

  • Cargar EML en MapiMessage: Parse un archivo estándar .eml (RFC 5322 / MIME) en un objeto completo MapiMessage a través de MapiMessage.LoadFromEml(stream).
  • Save MapiMessage as EML: Serialize a un MapiMessage de vuelta al formato MIME con message.SaveToEml() o message.SaveToEml(stream).
  • Fidelidad de la ruta redonda: El sujeto, el cuerpo, la estructura HTML, los enviadores, recipientes y anexos se conservan a través de las rutas EML → MSG → EMM.
  • No hay parser externo de MIME: El parsing EML se implementa nativamente dentro de la biblioteca — no es necesaria dependencia System.Net.Mail.

Dónde se utiliza la conversión EML

  • Formato de almacenaje: Recibe correos electrónicos como EML desde los servidores de correo y converta a MSG para almacenamiento compatible con Outlook.
  • Conformidad con los estándares: Convertir archivos MSG propiedad en MIME estándar para la entrega a cualquier transporte de correo.
  • **Normalizar archivos: Normalizar un archivo mixto de .eml y .msg en un formato único.
  • *Testing workflows: Generar fixturas en los test y verificar que sobreviven a MSG sin pérdida de datos.

Leer el tema de un archivo MSG

Abra un archivo de Outlook MSG desde una corriente y imprime el tema — no se requiere Microsoft Outlook.

using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);

Crea y salva un mensaje MSG

Construye un correo electrónico completo con el remitente, recipiente y anexo, luego escriba en un archivo MSG.

using System.IO;
using Aspose.Email.Foss.Msg;
var message = MapiMessage.Create("Hello", "Body");
message.SenderName = "Alice";
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
using var attachmentStream = new MemoryStream("abc"u8.ToArray());
message.AddAttachment("note.txt", attachmentStream, "text/plain");
using var output = File.Create("hello.msg");
message.Save(output);

Convertir EML en MSG

Cargue un archivo estándar .eml y guardarlo como un arquivo de Outlook .msg utilizando el parser MIME integrado.

using System.IO;
using Aspose.Email.Foss.Msg;
using var input = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(input);
using var msgOutput = File.Create("message.msg");
message.Save(msgOutput);
using var emlOutput = File.Create("roundtrip.eml");
message.SaveToEml(emlOutput);
  

Recursos de soporte y aprendizaje

 Español