Aspose.Email FOSS para .NET é uma biblioteca C# licenciada sob MIT, sem dependências, para trabalhar com arquivos .msg do Microsoft Outlook, contêineres Compound File Binary (CFB) e mensagens EML. Adicione um único pacote NuGet e comece imediatamente a ler, criar e processar mensagens de e‑mail sem instalar o Microsoft Outlook ou qualquer runtime proprietário.
A biblioteca oferece dois níveis de acesso. No nível baixo, CfbReader e CfbWriter dão controle total sobre contêineres binários CFB — percorrer entradas de diretório, ler e gravar nós de armazenamento e dados de fluxo, e inspecionar o layout bruto dos setores. MsgReader e MsgWriter lidam com o formato MSG sobre o CFB, expondo fluxos de propriedades MAPI, tabelas de destinatários e subarmazenamentos de anexos. No nível alto, MapiMessage permite criar novas mensagens do zero, ler assunto, corpo, remetente e destinatários, gerenciar anexos e converter entre os formatos MSG e EML via uma implementação MIME incorporada.
A biblioteca tem como alvo .NET 8.0 ou posterior e não possui dependências nativas, tornando-a adequada para Windows, Linux, macOS, contêineres Docker e funções serverless. Para recursos adicionais e suporte comercial, veja Aspose.Email for .NET.
CfbReader.FromFile(), CfbReader.FromStream(), ou new CfbReader(data).IterStorages(), IterStreams(),IterChildren() e IterTree().ResolvePath(names) para localizar um fluxo específico por cadeia de nomes.CfbDocument e serializar em bytes ou arquivo através de CfbWriter.ToBytes() ou CfbWriter.WriteFile().CfbStorage e CfbStream a qualquer nó de armazem-lo antes da serialização..msg arquivos acesso directo ao CF B permite inspecção e reparação forense.MsgReader.FromFile() ou MsgReader.FromStream() e acessar os fluxos de propriedade MAPI subjacentes, registros do destinatário e armazenamento de anexos.MsgDocument com MsgWriter.ToBytes() ou MsgWriter.WriteFile().MsgStorage, MsgStream e MsgStorage.FindStream().MsgStorage.FindStream() e MsgStorage.FindStorage() para localizar sub-entras nomeadas..msg em leitura a granel dos diretórios de archive e extrair metadados ou anexos..msg programaticamente e entregá-los a sistemas de correio baseados no Outlook.MapiMessage.Create(subject, body), defina SenderName, SenderEmailAddress e HtmlBody.To, Cc e Bcc via AddRecipient() com endereço de e‑mail e nome de exibição.AddAttachment() ou construa objetos MapiAttachment diretamente com Filename, MimeType, ContentId e Data.message.Save() ou message.Save(stream) e recarregue com MapiMessage.FromFile() ou MapiMessage.FromStream().message.Attachments, e salve cada attachment.Data no disco.message.Subject, message.Body, message.SenderEmailAddress e message.Recipients sem automação COM..eml arquivo (RFC 5322 / MIME) em um completo MapiMessage objeto através de MapiMessage.LoadFromEml(stream).MapiMessage de volta ao formato MIME com message.SaveToEml() ou message.SaveToEml(stream)..eml e .msg num único formato..eml em ensaios e verificar se sobrevivem à viagem de ida e volta sem perda de dados.Abra um arquivo Outlook MSG a partir de uma transmissão e imprima o assunto não é necessário 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);
Crie um e-mail completo com remetente, destinatário e anexo, depois escreva em um arquivo 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);
Carregar um ficheiro padrão .eml e salvá-lo como um Outlook .msg arquivo usando o parser MIME embutido.
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);