Ir para conteúdo
Fórum Script Brasil
  • 0

Envio de Email + MySQL


Carlos_Eduardo_de_Paula

Pergunta

Ola,

Estou com um pequeno problema chato...

tenho um pequeno script para envio de email onde ele busca os emails em uma base de com aproximadamente 7 mil emails porem quando chega em 3 mil o sistema para de enviar. abaixo segue o codigo que uso para o envio

já fiz varios testes porem não localizei nenhuma solução... alguém poderia me ajudar me dando uma luz.... uma ideia para resolver esse problema

ABS

$wsql = mysql_query("SELECT * FROM phpsp_users where primary_key ='$key'");

$dados=mysql_fetch_array($wsql);

$acao = $_POST[acao];

$nivel = $_POST[nivel];

$nome = $_POST[nome];

$email = $_POST;

$arquivo = $_POST[arquivo];

$assunto = $_POST[assunto];

if($acao == "send"){

if($nivel != 0){

$linha = "where userlevel=$nivel and id_cliente=$key";

//$linha = "where userlevel='5' and id_cliente='25'";

}

$headers = 'MIME-Version: 1.0' . "\r\n";

//$headers. = "Content-type: text/html; charset=iso-8859-1\r\n";

$headers.= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$headers.= "From:$nome<$email>";

$sql = mysql_query("SELECT distinct * FROM news $linha");

$d=mysql_fetch_array($sql);

// $sql = mysql_query("SELECT * FROM usuarios");

echo "<hr> $nivel <hr>";

echo "<table width='100%' border='1' align='center' cellpadding='0' cellspacing='2'>

";

$i = 1;

while ($coluna = mysql_fetch_array($sql)) {

$teste="<hr>

*<b>POLÍTICA ANTI-SPAM</b><br>

Conforme legislação sobre correio eletrônico, seção 301, Parágrafo (a)(2) ©. Decreto S. 1618, Título Terceiro aprovado pelo 105 Congresso Basedas Normativas Internacionais sobre o SPAM. Este email não poderá ser considerado SPAM, pois inclui uma forma de ser removido. Caso não queira receber novas mensagens de nossa empresa, <a href='http://www.site.com/remover.php?key=$coluna[id_user]'><b>Clique AQUI</b></a>. 

<br>

*Cadastro preenchido pela próprio(a) noivo(a) nos portais.<br>*Você está recebendo nosso informativo porque seus dados constam em nosso banco de dados, caso não deseje mais receber esse email, <a href='http://www.site.com/remover.php?key=$coluna[id_user]'><b>Clique AQUI</b></a>";

for ($s=00;$s<8;$s++)

{

$segundos=$s;

sleep(1);

}

if($segundos=8)

{

if (@mail($coluna,$assunto,stripslashes($arquivo.$teste),$headers))

{

$id_user=$coluna[id_user];

echo "<tr><td width='10' align='left'> $i</td><td> - <font color=blue>$coluna[nome] </td><td> $coluna - enviado</font></td></tr>";

}

else

{

echo "$i - <font color=red>$coluna - falhou</font><br>";

}

}

flush();

ob_flush();

usleep(1);

$i++;

}

echo "</table>";

}

Editado por Carlos_Eduardo_de_Paula
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

o que ocorre exatamente? apenas para? não dá erro?

coloque isto no topo do script e o execute novamente. veja se aparece erro

ini_set( 'display_errors', 1);
error_reporting( E_ALL );

Mas pode não ser um erro de programação.

O servidor pode ter um limite de envio por tempo.

O servidor de e-mail pode estar congestionado...

PS: Use a fonte padrão do fórum. Nâo precisa aumentar a fonte a fim de pedir mais atenção.

Editado por Beraldo
Link para o comentário
Compartilhar em outros sites

  • 0

O limite que o pessoal do servidor me informou é de 500 emails por hora....

não apresenta nenhum erro... simplismente para... :(

vou utilizar esse codigo que você me passou e ver o resultado...

ABS

Obrigado

o que ocorre exatamente? apenas para? não dá erro?

coloque isto no topo do script e o execute novamente. veja se aparece erro

ini_set( 'display_errors', 1);
error_reporting( E_ALL );

Mas pode não ser um erro de programação.

O servidor pode ter um limite de envio por tempo.

O servidor de e-mail pode estar congestionado...

Editado por Carlos_Eduardo_de_Paula
Link para o comentário
Compartilhar em outros sites

  • 0

Depois de quanto tempo elepara de executar ? 30 segundos ? Se for, é por causa do php.ini.

max_execution_time = 30 ; Maximum execution time of each script, in seconds

Aumente esse tempo ou coloque ponto e vírgula ( ; ) assim...

;max_execution_time = 30 ; Maximum execution time of each script, in seconds

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...