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

Maillist


richenrique

Pergunta

Olá amigos, tenho um script que eu fiz de maillist. Mas como tenho muitos emails cadastrados no banco e o processo de envio é bem lento. alguém tem uma ideia para melhor a eficiencia do algoritimo?

segue abaixo o código

$sql = mysql_query("SELECT * FROM maillist");

$linhas = mysql_num_rows($sql);

if($linhas>0)

{

while($dados = mysql_fetch_array($sql))

{

$email=$dados["email"];

$mensagem = $materia;

$mensagem.= $assinatura;

$headers = "Content-Type: text/html \n";

$headers.= "From:Maillist<email@email.com.br>";

$email = mail("$email","$titulo","$mensagem","$headers");

if($email=="1")

{

$conta++;

}

else

{

$count++;

}

}

echo"Foram enviados $conta email(s) e $count email(s) não foram enviados!";

}

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Tu poderia montar a mensagem apenas uma vez (antes de começar a enviar) isso economizaria muito tempo de processamento, uma vez que o script apenas enviaria a mensagem e não precisaria montá-la a cada iteração.

Link para o comentário
Compartilhar em outros sites

  • 0

Fala Eddie beleza?

você fala colocar a mensagem antes do while?

Assim:

$sql = mysql_query("SELECT * FROM maillist");

$linhas = mysql_num_rows($sql);

if($linhas>0)

{

$email=$dados["email"];

$mensagem = $materia;

$mensagem.= $assinatura;

$headers = "Content-Type: text/html \n";

$headers.= "From:Maillist<email@email.com.br>";

while($dados = mysql_fetch_array($sql))

{

$email = mail("$email","$titulo","$mensagem","$headers");

if($email=="1")

{

$conta++;

}

else

{

$count++;

}

}

echo"Foram enviados $conta email(s) e $count email(s) não foram enviados!";

}

Abraços e obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Dá pra trocar o if por ($email==1?conta++:count++);

Ficaria assim:

$sql = mysql_query("SELECT * FROM maillist");
$linhas = mysql_num_rows($sql);
if($linhas>0)
{ 
    $email=$dados["email"];
    $mensagem = $materia;
    $mensagem.= $assinatura;
    $headers = "Content-Type: text/html \n";
    $headers.= "From:Maillist<email@email.com.br>";
}
while($dados = mysql_fetch_array($sql))
{
    $email = mail("$email","$titulo","$mensagem","$headers");
    ($email==1)?conta++:count++;
}
echo"Foram enviados $conta email(s) e $count email(s) não foram enviados!";

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...