![](https://products-qa.fileformat.com/pt/email/net/msgreader/header-image.png)
MSGReader
Biblioteca .NET para processamento de arquivos MSG do Outlook
API C# .NET de código aberto para ler, gravar e converter arquivos MSG e EML do MS Outlook.
MSGReader é uma biblioteca Open Source C# .NET para leitura de arquivos MSG e EML do Outlook. Ele permite que os desenvolvedores leiam arquivos MSG e EML do Outlook sem usar o Microsoft Outlook. Os objetos mais comuns do Outlook, como E-mail, Compromisso, Tarefa, Cartão de Visita e Nota autoadesiva, são totalmente suportados. Todos os tipos de corpo em arquivos MSG, como Texto, HTML, HTML incorporado em RTF e RTF também são suportados.
Existem algumas opções disponíveis para a manipulação de arquivos MSG no MSGReader. Ele permite que os desenvolvedores removam anexos de mensagens de e-mail; eles também podem salvar o arquivo em um novo.
Existem algumas opções disponíveis para manipulação de arquivos MSG no MSGReader. Ele permite que os desenvolvedores removam anexos de mensagens de e-mail; eles também podem salvar o arquivo em um novo.
Introdução ao MSGReader
A maneira mais fácil de instalar o MSGReader é via NuGet. Para usá-lo no Console do Gerenciador de Pacotes do Visual Studio, digite o seguinte comando.
Aqui está o comando
Install-Package MSGReader
Usando MSGReader de uma linguagem baseada em COM como script VB ou VB6.
Primeiro, você precisa baixar a versão mais recente e, em seguida, abrir o projeto MSGReader, definir o destino da plataforma como X86 e, em seguida, compilar o código no modo de lançamento, obter o arquivo "MsgReader.dll" da pasta BuildOutput e copiar o arquivo para o local desejado. Depois disso, registre o arquivo para interoperabilidade COM usando o seguinte comando.
Ler e salvar anexo de mensagem MSG do Outlook usando .NET
MSGReader permite que desenvolvedores C# acessem mensagens de e-mail e seus anexos de arquivos MSG e EML do Outlook. Ele fornece suporte para ler um arquivo MSG do Outlook e salvar o corpo da mensagem e todos os seus anexos em uma pasta de saída.
Ler dados MSG - C#
// Read a email .msg file
Message message = new MsgReader.Outlook.Storage.Message("fileformat.msg");
// Read sender
Console.WriteLine("Sender:" + message.Sender);
// Read sent on
Console.WriteLine("SentOn:" + message.SentOn);
// Read recipient to
Console.WriteLine("recipientsTo:" + message.GetEmailRecipients(MsgReader.Outlook.RecipientType.To, false, false));
// Read recipient cc
Console.WriteLine("recipientsCc:" + message.GetEmailRecipients(MsgReader.Outlook.RecipientType.Cc, false, false));
// Read subject
Console.WriteLine("subject:" + message.Subject);
// Read body html
Console.WriteLine("htmlBody:" + message.BodyHtml);
Converter MSG do Outlook como arquivo de texto usando a API .NET
A API MSGReader fornece os recursos para salvar MSG do Outlook como um arquivo de texto usando a API .NET. Os desenvolvedores podem acessar facilmente o conteúdo do arquivo MSG. Crie uma instância da caixa de diálogo salvar arquivo e salve a mensagem no formato de arquivo TXT.
Salvar e-mail do Outlook como texto - C#
var fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
"suggestion.msg");
using (var msg = new MsgReader.Outlook.Storage.Message(fileName))
{
var sb = new StringBuilder();
var from = msg.Sender;
var sentOn = msg.SentOn;
var recipientsTo = msg.GetEmailRecipients(
MsgReader.Outlook.Storage.Recipient.RecipientType.To, false, false);
var recipientsCc = msg.GetEmailRecipients(
MsgReader.Outlook.Storage.Recipient.RecipientType.Cc, false, false);
var recipientsBCC = msg.GetEmailRecipients(
MsgReader.Outlook.Storage.Recipient.RecipientType.Bcc, false, false);
var subject = msg.Subject;
sb.AppendLine($" From: {from.DisplayName} {from.Email}");
sb.AppendLine($" Sent: {sentOn.Value}");
sb.AppendLine($" To: {recipientsTo}");
sb.AppendLine($" CC: {recipientsCc}");
sb.AppendLine($" BCC: {recipientsBCC}");
sb.AppendLine($"Subject: {subject}");
sb.AppendLine($" Body:");
sb.AppendLine(msg.BodyText);
File.WriteAllText(Path.Combine(
AppDomain.CurrentDomain.BaseDirectory, "suggestion.txt"),
sb.ToString());
}