Conversão de EML e MIME
Conversão de EML e MIME
Aspose.Email FOSS for .NET inclui um analisador e serializador MIME incorporados, de modo que você pode converter entre arquivos padrão .eml (RFC 5322) e arquivos Outlook .msg sem quaisquer dependências externas. Nenhuma referência System.Net.Mail é necessária.
Carregar EML em MapiMessage
LoadFromEml aceita um caminho de arquivo, stream ou array 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);Após o carregamento, todos os campos padrão estão disponíveis:
Console.WriteLine(message.Subject);
Console.WriteLine(message.SenderEmailAddress);
Console.WriteLine(message.Recipients.Count);
Console.WriteLine(message.Attachments.Count);
Console.WriteLine(message.HtmlBody);Salvar MapiMessage como EML
SaveToEml serializa um MapiMessage para o 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();Conversão de EML → MSG
Combine LoadFromEml e Save para uma conversão completa de EML para MSG:
using System.IO;
using Aspose.Email.Foss.Msg;
var message = MapiMessage.LoadFromEml("incoming.eml");
message.Save("converted.msg");Conversão de MSG → EML
Carregar um MSG existente e serializar como EML:
using var message = MapiMessage.FromFile("original.msg");
message.SaveToEml("exported.eml");Fidelidade de Ida e Volta
Os seguintes campos são preservados durante as conversões EML → MSG → EML:
- Assunto, corpo e corpo HTML
- Nome do remetente e endereço de e‑mail
- Todos os destinatários (Para, Cc, Bcc)
- Anexos de arquivo com nome, tipo MIME e conteúdo
- Message-ID da Internet
- Hora de entrega da mensagem
// 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 countVeja Também
- Reading MSG Files — Carregar e inspecionar arquivos MSG
- Features — Referência completa de recursos
- MAPI Properties — Acesso a propriedades de baixo nível