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
- Extraia e salve anexos de e-mails usando C#
- Salvar anexos como PDF de e-mails usando C#
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));
}
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);
}
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.