Salvar anexos de e-mails usando C#

Como desenvolvedor C#, você pode facilmente extrair e salvar os anexos de mensagens de email de forma programática. Neste artigo, você aprenderá como salvar anexos de emails usando C#.

Os seguintes tópicos são discutidos/abordados neste artigo:

API C# para salvar anexos de e-mail

Para salvar os anexos de arquivos MSG, usaremos GroupDocs.Viewer for .NET API. É uma poderosa API do visualizador de documentos para renderizar e exibir formatos de arquivo amplamente usados sem instalar nenhum software externo. Ele também permite que você visualize rapidamente formatos de arquivo suportados de Word, Excel, PowerPoint, e-mails do Outlook, Projeto, PDF, HTML e XML.

Você pode baixar a DLL da API ou instalá-la usando NuGet.

Install-Package GroupDocs.Viewer

Extraia e salve anexos de e-mails usando C#

Você pode extrair e salvar anexos de arquivos MSG de e-mail programaticamente seguindo as etapas abaixo:

  • Primeiramente, carregue o arquivo MSG usando a classe Viewer.
  • Em seguida, chame o método Viewer.GetAttachments() para obter todos os anexos do arquivo MSG carregado. Obtenha os resultados como uma coleção de anexos.
  • Para cada anexo na coleção, salve o anexo chamando o método Viewer.SaveAttachment(). Passe o objeto do anexo e o caminho do arquivo para salvá-lo.

O exemplo de código a seguir mostra como extrair e salvar os anexos contidos no arquivo MSG de email usando C#.

string outputPath = @"C:\Files\Viewer\";

// Inicialize a API e carregue o arquivo MSG
Viewer viewer = new Viewer(@"C:\Files\Viewer\with_attachments.msg");

// Obter anexos
IList<Attachment> attachments = viewer.GetAttachments();

foreach (Attachment attachment in attachments)
{
    // Salvar anexo
    string filePath = Path.Combine(outputPath, attachment.FileName);
    viewer.SaveAttachment(attachment, File.OpenWrite(filePath));
}
Extraia e salve anexos de e-mails usando C#

Extraia e salve anexos de e-mails usando C#.

Salvar anexos como PDF de e-mails usando C#

Você pode salvar os anexos da mensagem de e-mail como PDF programaticamente seguindo as etapas abaixo:

  • Crie uma instância da classe Attachment com o nome do arquivo anexado e o caminho do arquivo.
  • Inicialize uma instância da classe MemoryStream.
  • Carregue o arquivo MSG usando a classe Viewer.
  • Em seguida, chame o método Viewer.SaveAttachment() e passe o Attachment e o objeto MemoryStream como parâmetros de entrada. Ele extrairá e salvará o anexo especificado no fluxo de memória.
  • Agora, carregue o objeto MemoryStream usando a classe Viewer.
  • Em seguida, crie uma instância da classe PdfViewOptions com o caminho do arquivo PDF de saída.
  • Por fim, chame o método Viewer.View() para salvar e visualizar o anexo como PDF.

O exemplo de código a seguir mostra como salvar e exibir o anexo como PDF de um arquivo MSG de email usando C#.

// Inicializar anexo
Attachment attachment = new Attachment("attachment-word.doc", "attachment-word.doc");
MemoryStream attachmentStream = new MemoryStream();

// Inicialize a API e carregue o arquivo MSG
using (Viewer viewer = new Viewer(@"C:\Files\Viewer\with_attachments.msg"))
{
    // Salvar anexo no stream
    viewer.SaveAttachment(attachment, attachmentStream);
}

// Inicialize a API e carregue o fluxo de anexos
using (Viewer viewer = new Viewer(attachmentStream))
{
    // Definir opções de visualização de PDF
    PdfViewOptions viewOptions = new PdfViewOptions("C:\\Files\\Viewer\\output.pdf");

    // Ver como PDF
    viewer.View(viewOptions);
}
Save attachments as PDF from emails using C#.

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como extrair e salvar os anexos contidos no arquivo MSG de email usando C#. Além disso, você viu como salvar um anexo específico como PDF programaticamente. Além disso, você pode aprender mais sobre GroupDocs.Viewer for .NET API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também