Jump to content


Ricardo Andrade

Member Since 25/11/2009
Offline Last Active 16/07/2013, 14:34
-----

Topics I've Started

Enviar E-Mail A Cada 14 Segundos Com Sleep

07/07/2013, 23:31

Boa noite,

Preciso enviar os boletos mensais à todos os clientes da minha empresa, até aí tá ok.
Porém, meu servidor limita o envio de emails pelo PHP à 300 emails/hora.
Para dar uma margem razoável, criei um script que envia 1 email a cada 14 segundo.
Fiz uma base teste de 6000 registros com o meu email repetido as 6000 vezes para poder testar se o envio está ok.
Testando, ele inicia o envio maravilhosamente bem se comportando como previsto, porém em ABSOLUTAMENTE TODOS OS TESTES, uma hora depois do início dos envios, sempre exatamente uma hora depois ele interrompe o envio, do nada.

Configurei para que mesmo que o usuário aborte a conexão ele termine de executar o script, além disso, para que o tempo limite de execução seja infinito, também alterei o tempo de inatividade do MySQL para infinito, MESMO ASSIM o problema persiste.

Segue meus códigos abaixo, gostaria de ajuda...

o php.ini do diretório raiz onde está o script que faz os envios
max_execution_time = 0
max_input_time = 0
safe_mode = off
safe_mode_gid = off
ignore_user_abort = On
mysql.connect_timeout = 0

meu script de envios
$sql = "SELECT * FROM solucao_segundasvias.clientesteste c INNER JOIN solucao_segundasvias.boletos b WHERE c.email <> '' AND c.codcliente = b.codcliente AND b.vencimento LIKE '%$mesano' ORDER BY c.codcond DESC";
$resultado = mysql_query($sql) or die (mysql_error());
$total = mysql_num_rows($resultado);

for($i=0;$i<$total;$i++){

	//lista os resultados da consulta
	$linha = mysql_fetch_array($resultado);
					
	$condominio = $linha["condominio"];
	$cliente = $linha["cliente"];
	$economia = $linha["economia"];
	$codcliente = $linha["codcliente"];
	$vencimento = $linha["vencimento"];
	$emailcli = $linha["email"];
	$boleto = $linha["boleto"];							
	$codbar = $linha["codbar"];

	//Faz o envio do e-mail aqui
	$destinatario = "$emailcli";
	$assunto = "Boleto do $condominio - $economia";
	$mensagem = "<font face='Arial' size='4'><img src='http://www.solucaoadm.com/assinaturanova/topo.jpg'><br /><p style='margin-left: 50px;'>Sr(a). <b>$cliente</b></font>,<font face='Arial' size='2'><br /><br />o seu boleto referente ao pagamento do condomínio da unidade <b>$economia</b> do <b>$condominioacento</b> já foi gerado para o vencimento $vencimento.<br /><br /><b>Segue abaixo o link para visualizar / imprimir:</b><br /><br /><a href='$boleto'>$boleto</a><br /><br /><br />OBS: Este e-mail é de geração automática, por favor, não responda.<br /><br /></p><hr style='border: 1px solid #bbbbbb; color: #bbbbbb; background-color: #bbbbbb; height: 1px;' /></font><p style='margin-left: 50px;'><font face='Arial' size='3'><b>Solução Serviços Para Condomínios Ltda.</b></font><br /><font face='Arial' size='2'>Rua Tronca, 1959 <b>|</b> Exposição <b>|</b> CEP 95010-100 <b>|</b> Caxias do Sul - RS <b>|</b> Fone/Fax: (54) 3222-6377 <b>|</b> <a href='mailto:solucao@solucaoadm.com'>solucao@solucaoadm.com</a> <b>|</b> <a href='http://www.solucaoadm.com'>www.solucaoadm.com</a></font></p>";

	$remetente = utf8_decode("Solução Condomínios <nao-responda@solucaoadm.com>");

	$header = "MIME-Version: 1.0\n"; 
	$header .= "Content-type: text/html; charset=utf-8\n"; 
	$header .= "From: $remetente\n";
	$header .= "Reply-to: $emailcli\n";

	$envia = mail($destinatario, $assunto, $mensagem, $header);

	sleep(14);

}

Fico no aguardo de uma luz, afinal já tentei absolutamente de TUDO!!

Obrigado.

IPB Skin By Virteq