Emails com csharp

.NET

23/07/2015

Olá a todos, gostaria de saber se alguém tem algum exemplo de como eu posso resolver a seguinte situação: eu preciso enviar e receber emails de forma automática a primeira parte eu já consigo fazer ao abrir o meu sistema ele gera um arquivo XML e envia para um determinado e-mail, o que esta pegando é o seguinte como ler a caixa de e-mail e baixar esse arquivo de forma automática para que eu possa importar o conteúdo do arquivo para o meu sistema no outro lado?

Desde já obrigado a todos...
Edivan Silva

Edivan Silva

Curtidas 0

Melhor post

Randrade

Randrade

24/07/2015

Não entendi muito bem a sua dúvida. Você quer que o sistema leia a caixa de entrada de seu e-mail e faça o download do arquivo automaticamente?
GOSTEI 1

Mais Respostas

Edivan Silva

Edivan Silva

23/07/2015

Obrigado por responder... e o texto da sua pergunta é exatamente a minha resposta... quero que o sistema baixe o arquivo xml para pasta C:\ todos os dias no momento da sua abertura verificar se tem o email e baixar o arquivo e com isso o sistema importaria o xml para dentro do meu banco... mas o restante eu consigo fazer, o que eu nao sei como é receber e baixar o arquivo xml de forma automatica...

Obrigado
GOSTEI 0
Randrade

Randrade

23/07/2015

Framework .NET não contém classes que permitem o acesso a servidores de e-mail (SmtpClient só pode enviar mensagens).
Tendo isso em mente, a primeira coisa que você precisa é um componente .NET IMAP ou POP3 componente .NET para baixar e-mails do servidor.
IMAP e POP3 são os protocolos que permitem a comunicação com os servidores de e-mail, como o Exchange ou Gmail e mensagens de e-mail de download. IMAP é mais robusto, já que permite pesquisar e agrupar e-mails em pastas. Você pode ver IMAP POP3 vs comparação aqui .
Os anexos de email são transferidos junto com a mensagem de e-mail . Os anexos são armazenados dentro do e-mail como parte de um mime. Normalmente Quoted-Printable ou Base64 é usado. É por isso que para além de um cliente IMAP / POP3, é necessário analisador "MIME.Mail.dll" que vai analisar tal árvore MIME para você e expor todos os anexos bem conhecidas coleções .NET. Claro que todas as outras propriedades de e-mail, como assunto, data, destinatários e corpo, também estão disponíveis.
--Limilabs


Não sei qual o servidor de e-mails está configurado, mas vou postar um código mais "genérico".
using(Pop3 pop3 = new Pop3())  
 {  
     pop3.Connect("server");  
     pop3.UseBestLogin("user", "password");  
     foreach (string uid in pop3.GetAll())  
     {  
         IMail email = new MailBuilder()
         .CreateFromEml(pop3.GetMessageByUID(uid));  
         Console.WriteLine(email.Subject);  
         // salva os anexos em disco
         email.Attachments.ForEach(mime => mime.Save(mime.SafeFileName));  
     }  
     pop3.Close();  
 } 


No código acima ele busca os emails em sua caixa de entrada e salva no disco. Você pode utilizar algum critério, para ver se o e-mail foi lido, ou se é do dia. Aí fica ao seu critério.

Vou deixar dois link's abaixo, onde explica como fazer isso, e qual biblioteca usar. Os mesmos possuem dois projetos de demonstração, basta realizar o download e testar.

-POP Cliente em .NET
-POP Library


Caso tenha dificuldades, avise que esse fds eu monto um exemplo básico para você.
GOSTEI 1
Edivan Silva

Edivan Silva

23/07/2015

Se puder mande um e-mail para mim edivan.cabral@yahoo.com.br que te explico melhor minha necessidade eu consegui um exemplo aqui que abre os emails e eu os consigo baixar no modo manual usando o mouse clicando no corpo do e-mail e coisa e tal, mas vou ver se consigo adaptar a minha necessidade, mas é um projeto enorme não sei se eu preciso de tudo isso para apenas baixar o anexo do e-mail, assim sendo se você puder montar um exemplo no mais baico que seja vai me ajudar muito afinal tudo isso será feito por baixo dos panos o usuário não terá acesso ao processo tipo enquanto se abre a tela de splash esse processo será feito, mas como eu disse eu consigo fazer todo o resto o único problema é acessar o e-mail (se possível do Yahoo) e baixar o anexo , esse e-mail será único e exclusivo para esse fim então basicamente ele só iria receber este arquivo todo dia uma vez por dia.... Muitíssimo Obrigado DEUS te ilumine e abençoe a cada dia.... Mas depois vou olhar os códigos que você mandou e te dou respostas
GOSTEI 0
POSTAR