Conversión de EML y MIME
Conversión de EML y MIME
Aspose.Email FOSS for .NET incluye un analizador y serializador MIME incorporado, por lo que puedes convertir entre archivos estándar .eml (RFC 5322) y archivos Outlook .msg sin ninguna dependencia externa. No se necesita referencia System.Net.Mail.
Cargar EML en MapiMessage
LoadFromEml acepta una ruta de archivo, flujo o matriz de bytes:
using System.IO;
using Aspose.Email.Foss.Msg;
// From file path
var message = MapiMessage.LoadFromEml("incoming.eml");
// From stream
using var stream = File.OpenRead("incoming.eml");
var message2 = MapiMessage.LoadFromEml(stream);
// From byte array
var emlBytes = File.ReadAllBytes("incoming.eml");
var message3 = MapiMessage.LoadFromEml(emlBytes);Después de cargar, todos los campos estándar están disponibles:
Console.WriteLine(message.Subject);
Console.WriteLine(message.SenderEmailAddress);
Console.WriteLine(message.Recipients.Count);
Console.WriteLine(message.Attachments.Count);
Console.WriteLine(message.HtmlBody);Guardar MapiMessage como EML
SaveToEml serializa un MapiMessage al formato MIME:
// To file path
message.SaveToEml("output.eml");
// To stream
using var outStream = File.Create("output.eml");
message.SaveToEml(outStream);
// To byte array
byte[] emlData = message.SaveToEml();Conversión de EML a MSG
Combine LoadFromEml y Save para una conversión completa de EML a MSG:
using System.IO;
using Aspose.Email.Foss.Msg;
var message = MapiMessage.LoadFromEml("incoming.eml");
message.Save("converted.msg");Conversión de MSG a EML
Cargar un MSG existente y serializar como EML:
using var message = MapiMessage.FromFile("original.msg");
message.SaveToEml("exported.eml");Fidelidad de ida y vuelta
Los siguientes campos se conservan a través de viajes de ida y vuelta EML → MSG → EML:
- Asunto, cuerpo y cuerpo HTML
- Nombre del remitente y dirección de correo electrónico
- Todos los destinatarios (Para, Cc, Cco)
- Archivos adjuntos con nombre de archivo, tipo MIME y contenido
- ID de mensaje de Internet
- Hora de entrega del mensaje
// Verify round-trip
var original = MapiMessage.LoadFromEml("test.eml");
original.Save("test.msg");
using var reloaded = MapiMessage.FromFile("test.msg");
reloaded.SaveToEml("roundtrip.eml");
// Compare: original.eml and roundtrip.eml should have
// matching Subject, From, To, and attachment countVer también
- Lectura de archivos MSG — Cargar e inspeccionar archivos MSG
- Funciones — Referencia completa de funciones
- Propiedades MAPI — Acceso a propiedades de bajo nivel