Categorias

Sistema em PHP de envio de newsletter com pausa de lote

Função Geral do Script:
Esse Script tem a função de enviar uma newsletter personalizada para um número muito grande de pessoas, que estão diretamente cadastradas no banco de dados MySQL.

Recupera nome, e-mail e qualquer outra informação que você deseje do MySQL.

O que diferencia esse script dos demais é o fato de ele ter uma pausa de tempo determinada para que não ocorre congestionamento no servidor e sendo assim acaba por ter o serviço temporariamente cortado por ser considerado SPAM.

Muitos servidores possuem este tipo de bloqueio. Alguns, por exemplo, só permitem enviar 100 e-mails por hora. Acima disso ele bloqueia função MAIL do PHP por algum tempo.

Para não acontecer de você sem querer não saber que página parou, ou se o e-mail foi para aquele contato ou não, existe embutido no script à informação de status.

Será preciso adicionar a sua tabela no MySQL a coluna status.
Lá é colocado o valor 0 e quando acaba de enviar o e-mail para aquela pessoa o status dela se torna 1. Isso pode ser configurado ao seu critério.

Tem um cronometro para você não ficar perdido no tempo e ver quanto tempo falta para o próximo lote.

Ao olhar o script, os detalhes importantes são sempre comentados para maiores esclarecimentos de configurações!

BOM PROVEITO.


Tempo restante para o próximo lote:

Envio confirmado. Aguarde resposta...

".$totaldeemailsqueforam." e-mails

"; echo "Faltam ".$totaldeemailsquefalta." e-mails para terminar a entrega de todas as Newsletter´s"; ?> Isso é um teste

Esse e-mail é um Teste da Newsletter 1.1 de Rodrigo Tschope. Faça bom proveito! '; //Dados para envio de e-mail. Segue a ordem dos fatos: //mail($EMAIL DO DESTINATÁRIO, TITULO DO E-MAIL, MSG DO E-MAIL, REMENTE+CODIFICAÇÃO TEXTHTML + NOTIFICAÇÃO DE LEITURA PARA O E-MAIL QUE DESEJAR. mail($email_dest, "Titulo do e-mail", $corpo,"From:Rodrigo Tschope rnContent-type: text/html; charset=iso-8859-1rnDisposition-Notification-To: [email protected]"); // Se o e-mail foi enviado com certeza, ele muda o status para 1. if(true){ //conecta ao Banco de dados @ $db = mysql_pconnect('localhost','LOGIN','SENHA'); mysql_select_db('NOME_DO_BANCO'); $query = "UPDATE '$tabela' SET status = '$new_number' WHERE id = $id LIMIT 1"; $result=mysql_query($query); //Aparece na tela a imagem de OK com o nome da pessoa que voce enviou e o ID do mesmo; echo 'E-mail para '.$nome.' foi enviado com sucesso. Id de registro = '.$id.'

'; } else { //Caso o e-mail nao tenha sido enviado, aparece um botao vermelho de erro, o nome e o ID de quem nao foi! echo 'E-mail para '.$nome.' foi enviado com sucesso. Id de registro = '.$id.'

'; } } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); //Aqui é onde ele da o brake... Se ainda tiver mais registros para serem puxados ele vai dar esse meta tag ai em baixo com o tempo em segundos!!! No caso eu configurei pra 3700 segundos. Altere se necessario. if ($pageNum_Recordset1 < $totalPages_Recordset1){ ?> O e-mail enviado para todos foi:"; echo "".$corpo.""; } //Caso não tenha mais registros pra uma proxima página de envio ele vai para página sucesso.html else { ?>

Arquivos para Download:

Newsletter_facil.rar