Oi galera, abaixo segue um código completo de envio de mala-direta, feito por mim e utilizado já há 2 anos.
 
Este script já passou por 3 versões, e já travou muito servidor, desde Locaweb, à Porta80.
 
Atualmente estou hospedado na porta80 e estava belezinha, mas de uns tempos pra cá, sempre trava quando está mais ou menos no 10.000 (tenho 50.000 e-mails para serem enviados semanalmente, com um único click).
 
Gostaria de saber se tem alguém que pode analizar e me dar alguma dica de como melhorar este sistema, evitando assim acabar com os servidores de hospedagem e conseguir ter mais horas de sono durante a semana ;( .
 
Valeu.
 
Daniel
 
 
 
<!--- <CFIF ParameterExists(session.logged)> --->
 

<!--- Cria variável chave para dar inicio ao envio a partir da letra "a" ou numero "1", de acordo com suas tabelas. --->
<cfparam default="a" name="numero">
 
<!--- Cria variável de total de envio, para ser mostrado durante a operação. --->
<cfparam default="0" name="totalEnv">
 
<!--- Abre query Count, é utilizada enquanto a mala estiver "rodando"  --->
<cfquery datasource="#sua_dsn#" username="#quem#" password="#pass#" name="pesq_total" dbtype="odbc">
 Select count(*)as QTD
 from sua_tabela_mail
</cfquery>
 
<!--- Abre query principal, o detalhe legal é que podem alterar o número de 200 mails por vez, pra quantos quiserem... --->
<cfquery datasource="#sua_dsn#" username="#quem#" password="#pass#" name="pesq_email" dbtype="odbc" timeout="300" maxrows="200">
 Select email
 from sua_tabela_mail
 where email is not null and email > '#numero#'
 Order by email
</cfquery>
 

<cfif pesq_email.recordcount neq 0>
 
 <!--- É dado início ao Loop para o CFMAIL --->
 <cfloop query="pesq_email">
  
   <cfset espaco=Chr(13) & Chr(10)>
<cfmail to="#email#"  from="[EMAIL PROTECTED]" subject="Informativo Semanal" type="HTML">
<html>
...
</html>
</cfmail>  
   
  <!--- Quando acabar a remessa atual (no caso 200 emails) ele 'salva' o E-mail ou ID que parou. ---> 
     
  <cfset numero = #email#>
  <cfset totalEnv = #totalEnv# + 1>
 </cfloop>
 
 <!--- Nesta hora é executado um temporizador que 'breca' o sistema durante 20 segundos, tempo sugerido pela empresa que hospeda meu site :-(.  --->
 
 <script>
  var tempo = 20000
  var t
  t = setTimeout('envia_email()', tempo)
 </script>
 
</cfif>
 
<script>
 function envia_email(){
 document.email.submit( );
}
</script>
 
<cfoutput>
 

<!--- Form que chama novamente a página para continuar a enviar a mala-direta --->
 
<form action="" method="post" name="email">
 
<!--- Caso este código esteja dentro de um 'administrativo' vcs podem ter um formulário que envia um "titulo" da mala e o "conteudo" semanal, dai é só colocar dentro do código HTML, no CFMAIL --->
<input type="Hidden" name="coment" value="#form.coment#">
<input type="Hidden" name="titulo" value="#form.titulo#">
 
 <table align="center">
  <tr><Td>Total de E-mail&nbsp;</td><td><b>#pesq_Total.qtd#</b></td></tr>
  <tr><td>Enviados&nbsp;</td><td>#totalEnv#</td></tr>
 </table>
</form>
</cfoutput>
 
<!--- <CFELSE>
<CFLOCATION URL="" ADDTOKEN="Yes">
 
</CFIF> --->
 

<!--- Prontinho! Este é o script que utilizo toda semana pra mandar 50.000 emails, e sempre 'acabo' com o servidor de hospedagem, sempre cai, trava, ou eles acabam bloqueando a tag CFMAIL do meu domínio. --->
 

Vocês tem alguma dica de como posso melhorar este código, que já está na 3 versão, para assim não travar os servidores onde hospedo, poupando assim horas de sono. Valeu
 

Daniel Zsigmond.
--^^---------------------------------------------------------------
This email was sent to: [EMAIL PROTECTED]

EASY UNSUBSCRIBE click here: http://topica.com/u/?b1dnXn.b7M5gI.YXJxdWl2
Or send an email to: [EMAIL PROTECTED]

For Topica's complete suite of email marketing solutions visit:
http://www.topica.com/?p=TEXFOOTER
--^^---------------------------------------------------------------

Responder a