salvo89 10 Report post Posted March 9, 2011 Salve, mi trovo nella condizione di inviare una newsletter a circa 6.000 indirizzi e-mail utilizzando la funzione del php mail. Ora essendo php mail limitato all'invio di un certo numero di indirizzi e non certo per così tanti, ho cercato di effettuare l'invio a gruppi di 50 indirizzi e-mail per volta. Ma questo script sembra non funzionare in quanto invia solamente 50 e-mail a 50 indirizzi e non a gruppi di 50 fino al raggiungimento dei 6.00 utenti. Vi posto il codice, mi date una mano?? <?php // Per iniviare la newsletter $testomail = $_POST['text']; $oggetto = $_POST['subject']; $testomail = str_replace("'", "´", $testomail); $oggetto = str_replace("'", "´", $oggetto); $totale=1; // Inserisce in BCC tutti gli indirizzi mail raggruppati per 50 $c=floor($totale/50); // restituisce il numero per difetto! $count=0; for($i=0;$i<=$c;$i++) { $z=0; $s=$i*50; $query = "SELECT * FROM prova WHERE abilitato = 0 LIMIT ".$s.",50"; $action = mysql_query($query); if (mysql_num_rows($action) > 0) { while ($row = mysql_fetch_array($action)) { $count++; $z++; if ($z == 1) $bcc = $row['email']; else $bcc .= ", " . $row['email']; } } // Intestazioni mail $header = "Reply-To: info@prova.it\n"; $header .= "From: Prova Prova <info@prova.it>\nBCC: ".$bcc.""; $header .= "XMailer: Suada.it Mailer System\n"; $header .= "MIME-Version: 1.0\n"; $header .= "Content-Type: text/html; charset=utf-8"; // Invio Mail mail("noreply@prova.it", "$oggetto", "$testomail", "$header"); echo ('<script language="JavaScript" type="text/javascript">alert("La mail e\' stata inviata con successo a tutti gli indirizzi abilitati alla ricezione della newsletter!"); window.location="newsletter.php"</script>"'); } } ?> Grazie mille Share this post Link to post Share on other sites
salvo89 10 Report post Posted March 13, 2011 UP! :( Share this post Link to post Share on other sites
Uno 35 Report post Posted March 13, 2011 E' normale che funzioni così, tu cicli le prime 50 mail e poi tutto si ferma. Devi mettere il pezzo di codice che cicla le 50 mail in un altro ciclo che si ripete finchè non arrivi alla fine degli indirizzi mail che hai in db Share this post Link to post Share on other sites
salvo89 10 Report post Posted March 13, 2011 E' normale che funzioni così, tu cicli le prime 50 mail e poi tutto si ferma. Devi mettere il pezzo di codice che cicla le 50 mail in un altro ciclo che si ripete finchè non arrivi alla fine degli indirizzi mail che hai in db Ciao Uno e grazie, e quindi come dovrei fare?? Mi potresti gentilemnte far vedere un esempio? Share this post Link to post Share on other sites
salvo89 10 Report post Posted March 15, 2011 up! :) Share this post Link to post Share on other sites
andrea.paiola 30 Report post Posted March 16, 2011 non andrebbe comunque in timeout? personalmente userei un cron Share this post Link to post Share on other sites