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.
Edição feita por: Ricardo Andrade, 07/07/2013, 23:41.