1. Produtos
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS para .NET

Leia, crie e processe arquivos Outlook MSG, contêineres CFB e mensagens EML a partir de .NET — gratuito e de código aberto, sem dependência do Microsoft Outlook.

Biblioteca .NET de código aberto para arquivos MSG, CFB e EML

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 fornece 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 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 sem servidor. Para recursos adicionais e suporte comercial, veja Aspose.Email for .NET.

Leitura e gravação de contêiner CFB

  • Abrir arquivos CFB: Carregue contêineres CFB existentes a partir de um caminho de arquivo, stream ou array de bytes via CfbReader.FromFile(), CfbReader.FromStream() ou new CfbReader(data).
  • Percorrer a árvore de diretórios: Iterar armazenamentos, fluxos e filhos usando IterStorages(), IterStreams(), IterChildren() e IterTree().
  • Resolver caminhos: Navegue em hierarquias de armazenamento aninhadas com ResolvePath(names) para localizar um fluxo específico por cadeia de nomes.
  • Escreva contêineres CFB: Crie documentos CFB programaticamente com CfbDocument e serialize para bytes ou arquivo via CfbWriter.ToBytes() ou CfbWriter.WriteFile().
  • Adicionar armazenamentos e fluxos: Anexe os nós CfbStorage e CfbStream a qualquer nó de armazenamento antes da serialização.

Onde o Acesso CFB é Usado

  • Inspeção de arquivos MSG: CFB é o formato de contêiner para arquivos .msg do Outlook — o acesso direto ao CFB permite inspeção forense e reparo.
  • Custom binary formats: Qualquer aplicação legada que use CFB para armazenamento de dados pode ser lida ou escrita sem uma dependência COM.
  • Data recovery: Percorra toda a árvore de diretórios e extraia os bytes brutos do fluxo de arquivos CFB danificados ou não padrão.
  • Binary round-trip testing: Serialize um documento para bytes e recarregue-o para verificar a serialização sem perdas em testes automatizados.

Leitura e gravação de arquivo MSG

  • Ler arquivos MSG: Abra arquivos MSG do Outlook com MsgReader.FromFile() ou MsgReader.FromStream() e acesse os fluxos de propriedades MAPI subjacentes, os registros de destinatários e os subarmazenamentos de anexos.
  • Write MSG files: Produza arquivos MSG a partir de um MsgDocument com MsgWriter.ToBytes() ou MsgWriter.WriteFile().
  • Acesso MAPI de baixo nível: Leia fluxos de propriedades de nível superior, propriedades nomeadas e dados de anexos via MsgStorage, MsgStream e MsgStorage.FindStream().
  • Navegação de armazenamento MSG: Use MsgStorage.FindStream() e MsgStorage.FindStorage() para localizar subentradas nomeadas.

Onde o Processamento de MSG é Utilizado

  • Email archival pipelines: Leitura em massa de arquivos .msg de diretórios de arquivo e extração de metadados ou anexos.
  • Ferramentas de migração: Converta coleções MSG para formatos padrão para importação em sistemas que não são Outlook.
  • Descoberta legal: Analise fluxos de propriedades MAPI brutos para extrair todos os campos de mensagem, incluindo propriedades não padrão.
  • Entrega automática de relatórios: Construir arquivos .msg programaticamente e entregá‑los aos sistemas de e‑mail baseados no Outlook.

API de Mensagens de Alto Nível

  • Criar mensagens: Construa um e‑mail completo com MapiMessage.Create(subject, body), defina SenderName, SenderEmailAddress e HtmlBody.
  • Adicionar destinatários: Anexar To, Cc e Bcc destinatários via AddRecipient() com endereço de e‑mail e nome de exibição.
  • Gerenciar anexos: Adicione anexos de arquivo e fluxo com AddAttachment() ou construa objetos MapiAttachment diretamente com Filename, MimeType, ContentId e Data.
  • Salvar e recarregar: Serializar com message.Save() ou message.Save(stream) e recarregar com MapiMessage.FromFile() ou MapiMessage.FromStream().

Onde a API de Alto Nível é Utilizada

  • Geração automática de e‑mail: Gere milhares de arquivos MSG personalizados a partir de registros de dados em trabalhos em lote.
  • Criação de fixture de teste: Crie arquivos MSG conhecidos e corretos com conteúdo previsível para suítes de teste de integração.
  • Extração de anexos: Carregue um arquivo MSG, itere message.Attachments e salve cada attachment.Data no disco.
  • Inspeção de propriedade: Acesse message.Subject, message.Body, message.SenderEmailAddress e message.Recipients sem automação COM.

Conversão de EML e MIME

  • Carregar EML em MapiMessage: Analise um arquivo .eml padrão (RFC 5322 / MIME) em um objeto MapiMessage completo via MapiMessage.LoadFromEml(stream).
  • Salvar MapiMessage como EML: Serializar um MapiMessage de volta ao formato MIME com message.SaveToEml() ou message.SaveToEml(stream).
  • Fidelidade de ida e volta: Assunto, corpo, HTML corpo, remetente, destinatários e anexos são todos preservados através de ciclos EML → MSG → EML.
  • Sem analisador MIME externo: O parsing de EML é implementado nativamente na biblioteca — sem dependência do System.Net.Mail.

Onde a Conversão de EML é Utilizada

  • Format bridging: Receba e‑mails como EML de servidores de correio e converta para MSG para armazenamento compatível com Outlook.
  • Conformidade com padrões: Converta arquivos MSG proprietários para MIME padrão para entrega a qualquer transporte de e‑mail.
  • Normalização de arquivamento: Normalizar um arquivo misto de arquivos .eml e .msg para um único formato.
  • Fluxos de teste: Gere fixtures .eml nos testes e verifique se eles sobrevivem à ida e volta de MSG sem perda de dados.

Ler o Assunto de um Arquivo MSG

Abra um arquivo Outlook MSG a partir de um stream e imprima o assunto — sem necessidade do 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);

Criar e Salvar uma Mensagem MSG

Crie um e‑mail completo com remetente, destinatário e anexo, e então grave‑o 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);

Converter EML para MSG

Carregue um arquivo .eml padrão e salve‑o como um arquivo .msg do Outlook usando o analisador 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);
  

Recursos de Suporte e Aprendizado

 Português