Email Smtp Asp.net

25/01/2011

0

Olá Pessoal da DevMedia !!
   Bom, vou direto ao assunto. Tenho uma aplicação que envia e-mail via smtp, ela está funcionando só que eu andei pesquisando e quando se usa smtp pra enviar email em massa, ocorre perca de emails.
    A solução e a seguinte: Encontrar algo no C# que eu possa parar a aplicação(por exemplo, estipular 5 segundos antes do envio do próximo e-mail), e ao passar esse intervalo de tempo enviar outro e assim sucessivamente.
 
 Alguém poderia me dá esa força ?
 
  Abraços.

 Atenciosamente,


Eduardo Melo
Eduardo Siqueira

Eduardo Siqueira

Responder

Posts

26/01/2011

Lucas Luo

Vc pode fazer um delay com a classe Thread
Responder

29/01/2011

Netasper

Pesquise algo de enfileiramento Queue. Isto irá te ajudar certamente:

http://www.sqlteam.com/article/building-a-mail-queue-system

O proprio SQL ja faz isto sem precisar de uma aplicação!!!
Responder

29/01/2011

Eduardo Siqueira

Pessoal, Eu consegui parar a aplicação com thread... só que quando eu envio e-mails em massa(via smtp), que é o caso descrito no primeiro post há ainda perdas de emails mesmo com o intervalo que eu estipulei  usando thread, agora a minha dúvida é, se alguém mais tem esse problema, e quando eu debuguei o código eu vi a mensagem de erro "Não foi póssivel completar a ação. Fechando canal de transmissão. A resposta para o servidor foi. 4.3.1 rejected",
Responder

31/01/2011

Rodrigo Odasaki


  Olá amigo!

//8 Execuções do código abaixo.             for (int i = 0; i < 8; i++)             {                for (int a = 0; a < 25; a++)                 {                    //ObjSmtp.Send(ObjMail);                }                System.Threading.Thread.Sleep(TimeSpan.FromSeconds(30));            }


Amigo, segue o código acima.
O primeiro for executa o bloco 8 vezes e o segundo for de baixo executa 25 vezes.
Coloquei um delay de 30 segundos..

Ou seja ele faz o envio de 25 mensagens a cada 30 segundos executando em 8 blocos. Total de mensagens: 200.

Lembre-se, se você utilizar uma hospedagem e tiver e-mails padrões da estrutura compartilhada, existem limitações de envios por conta. Uma média de 3 mil por dia e 50 mensagens por minuto!

Veja com o seu provedor sobre essas limitações, se você ultrapassar poderá até ser suspenso, pois vai sobrecarregar o servidor prejudicando outros clientes.

Eu sugiro que você envie por um servidor próprio.


No caso eu recomendo o uso de procedures para este tipo de execução.
Responder

31/01/2011

Rodrigo Odasaki


Pessoal, Eu consegui parar a aplicação com thread... só que quando eu envio e-mails em massa(via smtp), que é o caso descrito no primeiro post há ainda perdas de emails mesmo com o intervalo que eu estipulei  usando thread, agora a minha dúvida é, se alguém mais tem esse problema, e quando eu debuguei o código eu vi a mensagem de erro "Não foi póssivel completar a ação. Fechando canal de transmissão. A resposta para o servidor foi. 4.3.1 rejected",
 

Crie um log de todas exceções encontradas, e faça com quem o código continue executando assim mesmo.. Sempre quando o servidor for enviar, pode ter um e-mail onde foi possível enviar. O problema pode ser no seu servidor de envio ou no de recebimento, se necessário encaminhe o log dos envios para o suporte da sua hospedagem.

Utilize sempre um um bloco try e cath e também um throw... 
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar