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 inmediatamente 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, 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 subalmacenamientos de adjuntos. En el nivel alto, MapiMessage te permite crear nuevos mensajes desde cero, leer el asunto, el cuerpo, el remitente y los destinatarios, gestionar los adjuntos y convertir entre los formatos MSG y EML mediante una implementación MIME incorporada.
La biblioteca tiene como objetivo .NET 8.0 o posterior y no tiene dependencias nativas, lo que la hace adecuada para Windows, Linux, macOS, contenedores Docker y funciones sin servidor. Para obtener características adicionales y soporte comercial, consulte Aspose.Email for .NET.
CfbReader.FromFile(), CfbReader.FromStream() o new CfbReader(data).IterStorages(), IterStreams(), IterChildren() y IterTree().ResolvePath(names) para localizar un flujo específico por cadena de nombres.CfbDocument y serialícelos a bytes o archivo mediante CfbWriter.ToBytes() o CfbWriter.WriteFile().CfbStorage y CfbStream a cualquier nodo de almacenamiento antes de la serialización..msg de Outlook — el acceso directo a CFB permite la inspección forense y la reparación.MsgReader.FromFile() o MsgReader.FromStream() y acceda a los flujos de propiedades MAPI subyacentes, a los registros de destinatarios y a los subalmacenes de adjuntos.MsgDocument con MsgWriter.ToBytes() o MsgWriter.WriteFile().MsgStorage, MsgStream y MsgStorage.FindStream().MsgStorage.FindStream() y MsgStorage.FindStorage() para localizar subentradas nombradas..msg desde directorios de archivo y extracción de metadatos o adjuntos..msg programáticamente y envíelos a sistemas de correo basados en Outlook.MapiMessage.Create(subject, body), establece SenderName, SenderEmailAddress y HtmlBody.To, Cc y Bcc destinatarios a través de AddRecipient() con dirección de correo electrónico y nombre para mostrar.AddAttachment() o construir objetos MapiAttachment directamente con Filename, MimeType, ContentId y Data.message.Save() o message.Save(stream) y recargar con MapiMessage.FromFile() o MapiMessage.FromStream().message.Attachments, y guarde cada attachment.Data en disco.message.Subject, message.Body, message.SenderEmailAddress y message.Recipients sin automatización COM..eml estándar (RFC 5322 / MIME) en un objeto MapiMessage completo a través de MapiMessage.LoadFromEml(stream).MapiMessage de nuevo al formato MIME con message.SaveToEml() o message.SaveToEml(stream)..eml y .msg a un solo formato..eml en pruebas y verifica que sobrevivan al viaje de ida y vuelta de MSG sin pérdida de datos.Abra un archivo MSG de Outlook desde un flujo e imprima el asunto — 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);
Cree un correo electrónico completo con remitente, destinatario y archivo adjunto, y luego guárdelo 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);
Cargue un archivo .eml estándar y guárdelo como un archivo .msg de Outlook usando el analizador MIME incorporado.
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);