richenrique Posted January 22, 2004 Report Share Posted January 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!";} Quote Link to comment Share on other sites More sharing options...
0 Eddie_666 Posted January 22, 2004 Report Share Posted January 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. Quote Link to comment Share on other sites More sharing options...
0 richenrique Posted January 23, 2004 Author Report Share Posted January 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 Quote Link to comment Share on other sites More sharing options...
0 Eddie_666 Posted January 23, 2004 Report Share Posted January 23, 2004 exato! Quote Link to comment Share on other sites More sharing options...
0 richenrique Posted January 23, 2004 Author Report Share Posted January 23, 2004 Além disso você aconselha alguma "atalho" para tornar mais eficiente o algoritimo? Quote Link to comment Share on other sites More sharing options...
0 Eddie_666 Posted January 23, 2004 Report Share Posted January 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!"; Quote Link to comment Share on other sites More sharing options...
Question
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 to comment
Share on other sites
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.