Email Smtp Asp.net
25/01/2011
0
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
Posts
29/01/2011
Netasper
http://www.sqlteam.com/article/building-a-mail-queue-system
O proprio SQL ja faz isto sem precisar de uma aplicação!!!
29/01/2011
Eduardo Siqueira
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.
31/01/2011
Rodrigo Odasaki
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...
Clique aqui para fazer login e interagir na Comunidade :)