richenrique Postado Janeiro 22, 2004 Denunciar Share Postado Janeiro 22, 2004 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!";} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eddie_666 Postado Janeiro 22, 2004 Denunciar Share Postado Janeiro 22, 2004 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 richenrique Postado Janeiro 23, 2004 Autor Denunciar Share Postado Janeiro 23, 2004 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eddie_666 Postado Janeiro 23, 2004 Denunciar Share Postado Janeiro 23, 2004 exato! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 richenrique Postado Janeiro 23, 2004 Autor Denunciar Share Postado Janeiro 23, 2004 Além disso você aconselha alguma "atalho" para tornar mais eficiente o algoritimo? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eddie_666 Postado Janeiro 23, 2004 Denunciar Share Postado Janeiro 23, 2004 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!"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
richenrique
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
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
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.