Em um dos meus últimos projetos tive a necessidade de baixar e-mails usando C#, o que parecia ser uma tarefa muito complicada se tornou uma coisa simples. Depois de algumas pesquisas no Google encontrei no site CodePlex, um componente simples e estável. O que é muito difícil nos dias de hoje. Eu testei e está funcionando perfeitamente e deixo aqui para que outros se sintam confortáveis em usar.

Primeiro temos que baixar as dlls do site Codeplex, a referencia está nos links no final do artigo, depois de baixar vamos criar um website no Visual Studio e fazer as referencias como na imagem abaixo.

 

 

As classes das dlls são bem simples de usar, o código chega a ser autoexplicativo para desenvolvedores que estão acostumados a usar classes de envio de e-mail, vai ser moleza.

 

Vamos fazer o using da dll, veja a linha 7.

 

 

 

 

 

 

 

 

 

 

 

Agora vamos ao nosso exemplo, lembrando que é apenas um código explicativo com o intuito de mostrar o funcionamento da dll. Você deve adequar da maneira que achar melhor, existe
varias possibilidades e funções que podem ser usadas.

 

 

No código acima usamos o evento Page_Load() do asp.net, mas podemos usar qualquer outro evento. Fizemos a instancia de um objeto Pop3Client, mas poderia ser também Imap4Client o padrão de conexão e o mesmo utilizado nas duas classes.


Logo após usamos o método ConnectSsl() passando os parâmetros do servidor de e-mails, caso o servidor não necessite de conexão segura, você pode optar por usar o método Connect().

Agora usamos o método RetrieveMessageObject() que recebe o index do e-mail e retorna um objeto Message, que nada mais é  do que o nosso e-mail.
Pronto você pode fazer qualquer coisa com a mensagem, baixar anexos, gravar em banco e etc.

 

Espero ter ajudado e obrigado a todos.

 

Para saber mais:

Aprofunde seus conhecimentos visitando nossa comunidade

Aprofunde seus conhecimentos sobre este tema na comunidade C#

Dlls MailSystem para o Projeto

Exibições: 4015

Comentar

Você precisa ser um membro de DevBrasil para adicionar comentários!

Entrar em DevBrasil

Comentário de Jeferson Mendes Lopes em 5 abril 2013 às 10:27

Ola Rafael, você poderia usar a Mail.dll e baixar as mensagem e anexos via IMAP.

Comentário de Joel Ramos Michaliszen Junior em 4 março 2013 às 11:35

Uma vez tive o mesmo problema com uma aplicação que baixava os emails com Nf-e e armazenava  porem ela baixava e excluia os emails do servidor , um cliente não queria que isto acontecesse, então tive que fazer uma "gambiarra" , ele baixava o email e enviava o mesmo de novo porem mudei o subject e criei um filtro no email para que fosse armazenado em outra pasta no email.

Comentário de Rafael Poveda em 16 janeiro 2013 às 14:38
Vagner eu resolvi o problema ativando no proprio e-mail para sempre deixar uma cópia no servidor!

Abraço
Comentário de Vagner .S em 15 janeiro 2013 às 11:26

Ola Rafael, desculpa a demora pra responder... Então no meu caso eu precisava mesmo excluir os emails então não cheguei a testar esse problema. De qualquer forma vou analisar o problema pra te ajudar enquanto isso você pode pesquisar no forum do projeto no link abaixo

http://mailsystem.codeplex.com/discussions

Abraço

Comentário de Rafael Poveda em 4 dezembro 2012 às 7:23
Ótimo artigo Vagner, apenas uma dúvida.
Testei a DLL e ela baixa as msgs e deleta do servidor, mesmo usando o parametro FALSE no método RetrieveMessageObject. Você teve esse mesmo problema?

© 2018   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço