btcv 0 Denunciar post Postado Dezembro 21, 2011 estou a fazer uma função para emviar mail em grandes quantidades, estou a utilizar o phpmailer: $listnum = "SELECT * FROM `mails` "; $resultnum=mysql_query($listnum); $totalRegistos = mysql_num_rows($resultnum); for($i=0; $i<=$totalRegistos; $i++){ $cont = 0; $listmsg = "SELECT * FROM `mails` limit ".$i.",1 "; $result=mysql_query($listmsg); while ($rows=mysql_fetch_row($result)) { $paraemail = $rows[1]; $mail->AddAddress($paraemail); $mail->Send(); $mail->ClearAddresses(); $cont = $cont + 1; echo ''.$paraemail.' - '; if ($cont == 50) { flush(); sleep (320); $cont = 0; } } } até aqui tudo bem ele envia para metade da bd depois mostra este erro The following From address failed:xxx@site.com penso que ele nao esta a fazer o sleep (320); sera que alguem me pode dar uma dica. obrigado a todos Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Dezembro 21, 2011 da uma melhora nesse codigo ai, pq você zera $cont quando é 50? você ta querendo fazer spam ne....... Compartilhar este post Link para o post Compartilhar em outros sites
Alisson_Schneider 0 Denunciar post Postado Dezembro 21, 2011 você está dizendo que se a variável $cont==50 ela vai ser novamente 0 oO Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Dezembro 21, 2011 tente esse codigo, so verifique se o nome da chave é email $sql = "SELECT * FROM mails"; $result = mysql_query($sql); while ($rows=mysql_fetch_array($result)) { $mail->AddAddress($rows['email']); $mail->Send(); $mail->ClearAddresses(); echo ''.$rows['email'].' - '; } Compartilhar este post Link para o post Compartilhar em outros sites
btcv 0 Denunciar post Postado Dezembro 21, 2011 tente esse codigo, so verifique se o nome da chave é email $sql = "SELECT * FROM mails"; $result = mysql_query($sql); while ($rows=mysql_fetch_array($result)) { $mail->AddAddress($rows['email']); $mail->Send(); $mail->ClearAddresses(); echo ''.$rows['email'].' - '; } mas e o sleep nao entra? Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Dezembro 21, 2011 pra q o sleep? zerando o $cont td vez q entrar no for......... ele nunca vai chegar a 50....... for($i=0; $i<=$totalRegistos; $i++){ cont = 0; //... if ($cont == 50){ flush(); sleep (320); $cont = 0; } } Compartilhar este post Link para o post Compartilhar em outros sites
btcv 0 Denunciar post Postado Dezembro 21, 2011 pra q o sleep? zerando o $cont td vez q entrar no for......... ele nunca vai chegar a 50....... for($i=0; $i<=$totalRegistos; $i++){ cont = 0; //... if ($cont == 50){ flush(); sleep (320); $cont = 0; } } pois falta de atenção, a var $cont devia de estar fora, mas mesmo assim nao meto o sleep para ele fazer uma pausa de 50 em casa 50 mails por causa do span? Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Dezembro 21, 2011 entendi, e qual é a duvida agora? Compartilhar este post Link para o post Compartilhar em outros sites
btcv 0 Denunciar post Postado Dezembro 21, 2011 entendi, e qual é a duvida agora? ja testei e meti o sleep(30); o que da uma pausa de 30 segundos de 50 em 50... mas volta a dar-me o mesmo erro... tens alguma ideia do que é? Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Dezembro 21, 2011 sera q n é um email formatado errado ou como caracteres especiais? da uma olhada nessa lista de emails Compartilhar este post Link para o post Compartilhar em outros sites
btcv 0 Denunciar post Postado Dezembro 21, 2011 ja estive a ver e axo que esta tudo bem... ele envia 1006 emails bem e depois da erro The following From address failed: em todos os outros.. ate pensei que podia ser o numero de emails que o server pode enviar por isso pensei no sleep... Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Dezembro 21, 2011 posta o resto da configuração do PHPMailer. Compartilhar este post Link para o post Compartilhar em outros sites
btcv 0 Denunciar post Postado Dezembro 21, 2011 error_reporting(E_STRICT); date_default_timezone_set('America/Toronto'); error_reporting(E_STRICT); date_default_timezone_set('America/Toronto'); include('class/class.phpmailer.php'); $mail = new PHPMailer(); $mail->SetLanguage("br"); $mail->IsHTML(true); // envio como HTML se 'true' $mail->WordWrap = 50; // DefiniÃÆ'§ÃÆ'£o de quebra de linha $mail->IsSMTP(); // send via SMTP $mail->SMTPAuth = true; // 'true' para autenticaÃÆ'§ÃÆ'£o $mail->Mailer = "smtp"; //Usando protocolo SMTP $mail->Host = "mail.xxxxx.com"; //seu servidor SMTP $mail->Username = "xxx@xxxxx.com"; //Username da BOL $mail->Password = "xxxxxx"; // senha de SMTP $mail->From = "xxx@xxxxx.com"; $mail->FromName = "xxx@xxxxx.com"; $msgs=$_POST["editor1"]; $newmsgs = str_replace('\"',"",$msgs); $mail->Body = $newmsgs; $mail->Subject = "xxxxxxxx.com | Newsletter"; $listnum = "SELECT * FROM `mails` "; $resultnum=mysql_query($listnum); $totalRegistos = mysql_num_rows($resultnum); $cont = 0; for($i=0; $i<=$totalRegistos; $i++){ $listmsg = "SELECT * FROM `mails` limit ".$i.",1 "; $result=mysql_query($listmsg); while ($rows=mysql_fetch_row($result)) { $paraemail = $rows[1]; $mail->AddAddress($paraemail); $mail->Send(); $mail->ClearAddresses(); $cont = $cont + 1; echo ''.$paraemail.' - '; if ($cont == 50) { flush(); echo'-------'; sleep(30); $cont = 0; } } } ?> Compartilhar este post Link para o post Compartilhar em outros sites