Cómo comenzar con Aspose.Email FOSS para .NET
Esta guía le lleva paso a paso por la instalación de la biblioteca, la lectura de su primer archivo MSG, la creación de un mensaje desde cero y la conversión entre los formatos EML y MSG.
Paso 1 — Instalar el paquete
dotnet add package Aspose.Email.FossNo se necesita configuración adicional. El paquete no tiene dependencias nativas.
Paso 2 — Leer un archivo MSG
Cree una aplicación de consola y agregue el siguiente código:
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine($"Subject: {message.Subject}");
Console.WriteLine($"From: {message.SenderEmailAddress}");
Console.WriteLine($"Body: {message.Body}");
foreach (var recipient in message.Recipients)
Console.WriteLine($"To: {recipient.EmailAddress}");
foreach (var attachment in message.Attachments)
Console.WriteLine($"Attachment: {attachment.Filename} ({attachment.MimeType})");MapiMessage.FromStream() analiza el contenedor CFB del archivo MSG y expone todas las propiedades MAPI
a través de propiedades C# fuertemente tipadas. No se requiere Microsoft Outlook.
Paso 3 — Crear un nuevo archivo MSG
using System.IO;
using Aspose.Email.Foss.Msg;
var message = MapiMessage.Create("Meeting Notes", "Please find the notes attached.");
message.SenderName = "Alice";
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
// Add a file attachment
message.AddAttachment("notes.txt", System.Text.Encoding.UTF8.GetBytes("Meeting notes here"), "text/plain");
// Save to file
message.Save("meeting_notes.msg");
Console.WriteLine("Created meeting_notes.msg");MapiMessage.Create() produce un mensaje en memoria. Save() lo serializa al formato MSG — puedes pasar una ruta de archivo, un Stream, o llamar a Save() sin argumentos para obtener un byte[].
Paso 4 — Convertir EML a MSG
using System.IO;
using Aspose.Email.Foss.Msg;
// Load from EML
using var input = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(input);
Console.WriteLine($"Subject: {message.Subject}");
// Save as MSG
message.Save("converted.msg");
Console.WriteLine("Saved converted.msg");
// Or save back to EML (round-trip)
message.SaveToEml("roundtrip.eml");El analizador MIME incorporado conserva el asunto, el cuerpo, el cuerpo HTML, el remitente, los destinatarios y todos los archivos adjuntos durante recorridos completos de EML ↔ MSG.
Próximos pasos
- Características y funcionalidades — referencia completa de características con ejemplos en C#
- Preguntas frecuentes — respuestas a preguntas comunes
- Guía de instalación — configuración de NuGet y requisitos de versión de .NET