Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

joaogil

disparar newsletter para 1.800 emails

Recommended Posts

Justamente... O tempo de autenticar/resposta, para cada email, é de no mínimo 1 segundo, o que é suficiente, para não ser detectado... nunca tive proplemas com meus servidores, desde o menorzinho que tem 3 sites, até o maior que jah hospedei como o plugin....(alias o plugin não cobra autenticação)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí pessoal, achei que tinha conseguido, mas depois dos 100 enviados não envia mais !!!!!

 

Eu fiz quele esquema de enviar 1, esperar um segundo, dar o refresh na página e enviar +1 e assim por diante... Em vez de usar BD ou arquivo ascii eu usei SESSION.

 

Funciona direitinho até chegar no 100, depois não envia mais nem com reza brava !!!!

O que pode ser ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, como eu sofri pra descobrir como enviar emails usando o PHP mailer, aki embaixo vou postar meu código que uso pra enviar, é 100% infalível.

 

Se alguém quizer, tem AKI um script de exemplo com while as configs do ini e todo o sistema, mais o PHP mailer com os arquivos adicionais NET e SMTP... tah tudo certinho, é soh olhar bem e analizar o arquivo exemplo.php.....

 

 

Se alguém tiver saco pra fazer um tutorial e esplicar este "trem" ai de cima manda ver....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí pessoal, na verdade não era o servidor de hospedagem que estava trancando o envio de e-mails depois do 100 enviados, e sim o SMTP do yahoo que começava a bloquear depois dos 100. Pos isso usei outro smtp que funcionou direitinho, testando em 350 e-mail enviados em blocos de 30, dava o refresh e enviava mais 30...Um problema que me deparei em outro servidor de hospedagem que testei este sistema, foi o bloqueio da função fsockopen(), usada pelo phpmailer. Mas isso é somente um a questão de pedir permissão ao servidor pra desbloquear.Uma idéia que um camarada meu me indicou foi de "enviar cada e-mail com 20 destinatários pelo CCO", diminuindo assim a quantidade das execuções de envio.O que voces acham disso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se já responderam isso já pra cima...

Mas é possível criar uma rotina pra enviar um determinado número de e-mails em um loop, e mandar a própria página HTML atualizar. Assim você pode adicionar o script no CRON para executar durante a noite.

 

Não tenho tempo de criar um script aqui, então vou colocar o que a locaweb sugere...

 

________________________________________________________________________________

__

 

Se possível faça o envio de madrugada, horário que o fluxo de mensagens é menor e consequentemente o impacto no servidor também será menor.

 

 

Faça o envio das mensagens por pacotes. Dessa forma a sua newsletter não sobrecarregará o servidor. Recomendamos que envie 10 mensagens e aguarde 10 segundos, envie mais 10 e aguarde mais 10 segundos e assim por diante.

 

Abaixo um script (em php) que faz o envio de mensagens por pacotes conforme descrito acima:

 

<?php//configurações do banco$host = "HOST";$banco = "BANCO";$usuario = "USUARIO";$senha = "SENHA";$tabela = "news";$campos = "id,destinatario,status"; //campos da tabela//configurações do e-mail$subject = "teste newsletter em pacotes";$body = "testando um script de envio de newsletter em pacotes usando php e mysql";$nome_remetente = "Seu Nome";$email_remetente = "seu@email.com";$quant = 10; //número de mensagens enviadas de cada vez$sec = 10; //tempo entre o envio de um pacote e outro (em segundos)?><?php$conexao = mysql_connect($host,$usuario,$senha);mysql_select_db($banco);?><?php$ok = 0;$inicio = 0;$fim = $inicio + $quant;?><?php$sql = "select $campos from $tabela where status = 0 limit $inicio,$fim";$query = mysql_query($sql,$conexao);$registros = mysql_num_rows($query);?><?phpif($registros==0){mysql_query("update $tabela set status = 0");printf("<font face=’tahoma’>todas as mensagens foram enviadas!</font>");$ok = 1;}?><?phpwhile($result = mysql_fetch_array($query)){$id = $result[0];$to = $result[1];$status = $result[2];$headers = "From: $nome_remetente <$email_remetente>";mail($to,$subject,$body,$headers);mysql_query("update $tabela set status = 1 where id = $id");printf("<font face=’tahoma’>$id ) mensagem para <b>$to</b> <font color=’#ff0000’><b>enviada com sucesso!</b></font></font>");}?><?phpmysql_free_result($query);mysql_close($conexao);?><?phpif(!$ok){echo("<meta http-equiv=\"refresh\" content=\"" . $sec . "\">");}?>
Lembrando que quanto mais informações você passar por header na função mail(), menores serão as chances do servidor bloquear.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu andei faz pouco tempo com esse problema, o php tem uma função chamada sleep() que interrompe a execuçao do codigo por um X numero de segundos. Colocar isso num loop ke pega os emails e envia é uma boa solução!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.