Permalink
Browse files

Bug fix

  • Loading branch information...
1 parent b94835e commit 96fd440908046b6f4389a4b6bf229ed018a38134 @simonewebdesign committed Feb 9, 2013
Showing with 4 additions and 2 deletions.
  1. +3 −1 User.php
  2. +1 −1 send.php
View
@@ -135,7 +135,9 @@ static function get_invalid_ones_by_list_id($list_id, $max_allowed_fails=5){
if ($list_id > 0) {
$q = "SELECT * from `users` WHERE `list_id`=? AND `fails`>=?";
$s = self::$db->prepare($q);
- return $s->execute(array($list_id, $max_allowed_fails));
+ if ( $s->execute(array($list_id, $max_allowed_fails)) ){
+ return $s->fetchAll(PDO::FETCH_OBJ);
+ }
}
return false;
}
View
@@ -1 +1 @@
-<?phpinclude_once 'bootstrap.php';include_once 'Newsletter.php';include_once 'User.php';include_once 'Resource.php';################################/* require 'PHPMailer_5.2.1/class.phpmailer.php'; $mail = new PHPMailer(); var_dump($mail);*/?><h1><?=SEND_NEWSLETTER?> <?=$cfg['site_name']?></h1><pre><?php// ALL USERSecho "Recupero mailing list in corso... ";$users = User::toBeSent( $cfg['limit'], $_GET['list_id'] );$users_count = count($users);echo $users_count > 0 ? "fatto" : "nessun utente rimasto.";echo ".\n";echo "Recuperati $users_count indirizzi email.\n";if ($users_count > 0) { // ci sono email da inviare echo "Inizio elaborazione...\n"; // NEWSLETTER echo "Lettura newsletter in corso... "; $n = Newsletter::read($_GET['newsletter_id']); if ($n) { echo "fatto.\n"; } else { die("errore.\n"); } /*** BEGIN MAIL SETTINGS ***/ echo "Caricamento file sorgente mailer... "; require 'PHPMailer_5.2.1/class.phpmailer.php'; echo "fatto.\n"; echo "Generazione istanza della classe in corso... "; $mail = new PHPMailer(); echo "fatto.\n"; $mail->SMTPDebug = $cfg['debug_mode']; echo "Debug mode: ON\n"; echo "Imposto la lingua italiana... "; $mail->SetLanguage($cfg['language']); echo "fatto.\n"; echo "Imposto mailer per l'uso di SMTP... "; $mail->IsSMTP(); // set mailer to use SMTP echo "fatto.\n"; echo "Specifico il server host principale e di backup... "; $mail->Host = $cfg['smtp_server']['main'] . ";" . $cfg['smtp_server']['backup']; // specify main and backup server echo "fatto.\n"; echo "Main SMTP server: " . $cfg['smtp_server']['main'] . "\n"; echo "Backup SMTP server: " . $cfg['smtp_server']['backup'] . "\n"; echo "Attivazione autenticazione SMTP in corso... "; $mail->SMTPAuth = $cfg['smtp_auth']; // turn on SMTP authentication echo "fatto.\n"; echo "Invio username e password al server... "; $mail->Username = $cfg['mail']['username']; // SMTP username $mail->Password = $cfg['mail']['password']; // SMTP password echo "fatto.\n"; echo "Impostazione indirizzo \"From\"... "; $mail->From = $cfg['from']; echo "fatto. L'indirizzo è: " . $cfg['from'] . ".\n"; echo "Imposto nome mittente... "; $mail->FromName = $cfg['from_name']; echo "fatto.\nIndirizzo mittente: " . $cfg['from_name'] . ".\n"; echo "Impostazione indirizzo \"Reply-To\"... "; $mail->AddReplyTo($cfg['reply_to'], $cfg['reply_to_name']); echo "fatto.\nIndirizzo \"Reply-To\": \"{$cfg['reply_to_name']}\" &lt;{$cfg['reply_to']}&gt;.\n"; echo "Imposto limite word wrap... "; $mail->WordWrap = $cfg['word_wrap']; echo "fatto.\n"; echo "Imposto formato mail... "; $mail->IsHTML(true); // set email format to HTML echo "fatto.\n"; echo "Imposto charset... "; $mail->CharSet = $cfg['charset']; echo "fatto.\n"; echo "Imposto oggetto mail... "; $mail->Subject = $n->subject; echo "fatto.\n\nSubject: {$n->subject}\n"; echo "ContentType: " . $mail->ContentType . "\n"; echo "Encoding: " . $mail->Encoding . "\n"; echo "CharSet: " . $mail->CharSet . "\n"; echo "Port: " . $mail->Port . "\n"; echo "\n"; // TEMPLATE echo "Caricamento del template in corso... "; $template = empty($n->custom_template_html) ? file_get_contents('template.html') : $n->custom_template_html; echo "fatto.\n"; echo "Il template è stato caricato correttamente.\n"; // var_dump($mail); # debug /*** END MAIL SETTINGS ***/ echo "Ci sono delle email non inviate.\n"; echo "Riprendo l'invio...\n"; foreach ( $users as $u ) { echo "Aggiungo {$u->email} ai destinatari... "; $mail->AddAddress($u->email); echo "fatto.\n"; echo "Bindo i dati nel template... "; include 'template_str_replacement.php'; echo "fatto.\n"; echo "Imposto template come contenuto della mail... "; $mail->Body = $user_template; echo "fatto.\n"; echo "Imposto messaggio alternativo per chi non supporta html... "; $mail->AltBody = 'Visita il nostro sito web! http://www.playpc.it'; // optional - MsgHTML will create an alternate automatically echo "fatto.\n"; echo "Tentativo di invio in corso a {$u->email}... "; if($mail->Send()) { // invio riuscito echo "Invio riuscito a \"{$u->name}\" &lt;{$u->email}&gt;.\n"; echo "Rimozione di {$u->email} dai destinatari in corso... "; if ( User::setMailAsReceived($u->id) ) { echo "fatto.\n"; } else { echo "fallito.\n"; } } else { //invio non riuscito echo "Invio fallito a \"{$u->name}\" &lt;{$u->email}&gt;.\n"; echo "Errore restituito dal mailer: {$mail->ErrorInfo}\n"; // Aumento il campo fails di 1 User::increment_fails($u->id); } $mail->ClearAddresses(); // anche se la mail non è stata inviata, ripulisco i destinatari. L'applicazione riproverà ad inviare una mail al prossimo refresh. } echo "Sono state inviate molte email, si rende necessario un refresh della pagina.\n"; echo "Refresh automatico tra "; echo $cfg['timeout'] / 1000; echo " secondi...\n"; echo "(se lo script non riprende la sua esecuzione automaticamente, per favore aggiorna la pagina manualmente premendo F5.)"; ?></pre><script> setTimeout("window.location = '<?php echo $_SERVER['REQUEST_URI']; ?>'", <?=$cfg['timeout']?>);</script><?php } else { // tutte le mail sono state inviate $invalid_users = User::get_invalid_ones_by_list_id($_GET['list_id'], $cfg['max_allowed_fails']); $invalid_users_count = count($invalid_users); if ($invalid_users_count > 0) { // ci sono stati degli invii falliti echo "</p>Invio newsletter concluso, tuttavia non e' stato possibile recapitare ai seguenti indirizzi:<p>"; echo "<ul>"; foreach ($invalid_users as $invalid_user) { echo "<li>{$invalid_user->name}</li>"; } echo "</ul>"; echo "<p>Si consiglia di eliminarli, poiche' potrebbero non essere validi.</p>"; } else { // tutti gli invii sono andati a buon fine echo "<p>Invio newsletter concluso con successo!</p>"; } User::resetFetch(); Newsletter::send($_GET['newsletter_id']);}?><a href="javascript:history.back(1)">Torna indietro</a>
+<?phpinclude_once 'bootstrap.php';include_once 'Newsletter.php';include_once 'User.php';include_once 'Resource.php';################################/* require 'PHPMailer_5.2.1/class.phpmailer.php'; $mail = new PHPMailer(); var_dump($mail);*/?><h1><?=SEND_NEWSLETTER?> <?=$cfg['site_name']?></h1><pre><?php// ALL USERSecho "Recupero mailing list in corso... ";$users = User::toBeSent( $cfg['limit'], $_GET['list_id'] );$users_count = count($users);echo $users_count > 0 ? "fatto" : "nessun utente rimasto.";echo ".\n";echo "Recuperati $users_count indirizzi email.\n";$invalid_users = User::get_invalid_ones_by_list_id($_GET['list_id'], $cfg['max_allowed_fails']);$invalid_users_count = count($invalid_users);echo "Indirizzi email non validi: $invalid_users_count\n";/* Se ci sono ancora utenti a cui inviare la mail ($users_count > 0) continuo* l'invio. Ma se il numero di utenti a cui inviare la mail dovesse combaciare* con il numero di utenti invalidi (o addirittura gli utenti invalidi sono piu'di quelli rimasti), allora mi fermo.*/if ($users_count > 0 && $users_count > $invalid_users_count) { // ci sono email da inviare echo "Inizio elaborazione...\n"; // NEWSLETTER echo "Lettura newsletter in corso... "; $n = Newsletter::read($_GET['newsletter_id']); if ($n) { echo "fatto.\n"; } else { die("errore.\n"); } /*** BEGIN MAIL SETTINGS ***/ echo "Caricamento file sorgente mailer... "; require 'PHPMailer_5.2.1/class.phpmailer.php'; echo "fatto.\n"; echo "Generazione istanza della classe in corso... "; $mail = new PHPMailer(); echo "fatto.\n"; $mail->SMTPDebug = $cfg['debug_mode']; echo "Debug mode: ON\n"; echo "Imposto la lingua italiana... "; $mail->SetLanguage($cfg['language']); echo "fatto.\n"; echo "Imposto mailer per l'uso di SMTP... "; $mail->IsSMTP(); // set mailer to use SMTP echo "fatto.\n"; echo "Specifico il server host principale e di backup... "; $mail->Host = $cfg['smtp_server']['main'] . ";" . $cfg['smtp_server']['backup']; // specify main and backup server echo "fatto.\n"; echo "Main SMTP server: " . $cfg['smtp_server']['main'] . "\n"; echo "Backup SMTP server: " . $cfg['smtp_server']['backup'] . "\n"; echo "Attivazione autenticazione SMTP in corso... "; $mail->SMTPAuth = $cfg['smtp_auth']; // turn on SMTP authentication echo "fatto.\n"; echo "Invio username e password al server... "; $mail->Username = $cfg['mail']['username']; // SMTP username $mail->Password = $cfg['mail']['password']; // SMTP password echo "fatto.\n"; echo "Impostazione indirizzo \"From\"... "; $mail->From = $cfg['from']; echo "fatto. L'indirizzo è: " . $cfg['from'] . ".\n"; echo "Imposto nome mittente... "; $mail->FromName = $cfg['from_name']; echo "fatto.\nIndirizzo mittente: " . $cfg['from_name'] . ".\n"; echo "Impostazione indirizzo \"Reply-To\"... "; $mail->AddReplyTo($cfg['reply_to'], $cfg['reply_to_name']); echo "fatto.\nIndirizzo \"Reply-To\": \"{$cfg['reply_to_name']}\" &lt;{$cfg['reply_to']}&gt;.\n"; echo "Imposto limite word wrap... "; $mail->WordWrap = $cfg['word_wrap']; echo "fatto.\n"; echo "Imposto formato mail... "; $mail->IsHTML(true); // set email format to HTML echo "fatto.\n"; echo "Imposto charset... "; $mail->CharSet = $cfg['charset']; echo "fatto.\n"; echo "Imposto oggetto mail... "; $mail->Subject = $n->subject; echo "fatto.\n\nSubject: {$n->subject}\n"; echo "ContentType: " . $mail->ContentType . "\n"; echo "Encoding: " . $mail->Encoding . "\n"; echo "CharSet: " . $mail->CharSet . "\n"; echo "Port: " . $mail->Port . "\n"; echo "\n"; // TEMPLATE echo "Caricamento del template in corso... "; $template = empty($n->custom_template_html) ? file_get_contents('template.html') : $n->custom_template_html; echo "fatto.\n"; echo "Il template è stato caricato correttamente.\n"; /*** END MAIL SETTINGS ***/ echo "Ci sono delle email non inviate.\n"; echo "Riprendo l'invio...\n"; foreach ( $users as $u ) { echo "Aggiungo {$u->email} ai destinatari... "; $mail->AddAddress($u->email); echo "fatto.\n"; echo "Bindo i dati nel template... "; include 'template_str_replacement.php'; echo "fatto.\n"; echo "Imposto template come contenuto della mail... "; $mail->Body = $user_template; echo "fatto.\n"; echo "Imposto messaggio alternativo per chi non supporta html... "; $mail->AltBody = 'Visita il nostro sito web! http://www.playpc.it'; // optional - MsgHTML will create an alternate automatically echo "fatto.\n"; echo "Tentativo di invio in corso a {$u->email}... "; if($mail->Send()) { // invio riuscito echo "Invio riuscito a \"{$u->name}\" &lt;{$u->email}&gt;.\n"; echo "Rimozione di {$u->email} dai destinatari in corso... "; if ( User::setMailAsReceived($u->id) ) { echo "fatto.\n"; } else { echo "fallito.\n"; } } else { //invio non riuscito echo "Invio fallito a \"{$u->name}\" &lt;{$u->email}&gt;.\n"; echo "Errore restituito dal mailer: {$mail->ErrorInfo}\n"; User::increment_fails($u->id); // Aumento il campo fails di 1 } /* Anche se la mail non è stata inviata, ripulisco i destinatari. * L'applicazione riproverà ad inviare una mail al prossimo refresh. */ $mail->ClearAddresses(); } echo "Sono state inviate molte email, si rende necessario un refresh della pagina.\n"; echo "Refresh automatico tra "; echo $cfg['timeout'] / 1000; echo " secondi...\n"; echo "(se lo script non riprende la sua esecuzione automaticamente, per favore aggiorna la pagina manualmente premendo F5.)"; ?></pre><script> setTimeout("window.location = '<?php echo $_SERVER['REQUEST_URI']; ?>'", <?=$cfg['timeout']?>);</script><?php } else { // tutte le mail sono state inviate if ($invalid_users_count > 0) { // ci sono stati degli invii falliti echo "<p>Invio newsletter concluso, tuttavia non e' stato possibile recapitare ai seguenti indirizzi:</p>"; echo "<ul>"; foreach ($invalid_users as $invalid_user) { echo "<li>{$invalid_user->email}</li>"; } echo "</ul>"; echo "<p>Si consiglia di eliminarli, poiche' potrebbero non essere validi.</p>"; } else { // tutti gli invii sono andati a buon fine echo "<p>Invio newsletter concluso con successo!</p>"; } User::resetFetch(); Newsletter::send($_GET['newsletter_id']);}?><a href="javascript:history.back(1)">Torna indietro</a>

0 comments on commit 96fd440

Please sign in to comment.