Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    problemi invio massivo con PHPMailer

    Salve a tutti ho un problema con la classe PHPMailer per l’invio email.
    Uso la classe per l’invio massiccio agli utenti della newsletter ma probabilmente gli utenti adesso sono troppi e l’invio mi genera un errore.
    Gli utenti sono inseriti come BCC. Di seguito il codice.
    Qualcuno potrebbe darmi una mano? Grazie

    Codice PHP:
    require("config.php");

    # Recupero i topic del forum
    $query = @mysql_query("SELECT * FROM newsletter");
    $righe mysql_num_rows($query);


    if (
    $righe==0) {
                      echo 
    " ";

    }
    else {

       while(
    $result = @mysql_fetch_array($query))
       {

        
    $email_to-> AddBCC($result[email]); 

       }
    }


    require(
    "chiudi.php");



      if (!
    $email_to->Send()) $message "Si � verificato un errore nell' invio della mail di conferma".$email_to->ErrorInfo
      else 
    $message="Messaggio inviato con successo!"

      
    $email_to->ClearAddresses(); 
      
    $email_to->ClearBCCs(); 
      
    $email_to->ClearAttachments(); 
    Valli di Chioggia
    Blog di Excel VBA Microsoft Excel e Visual basic
    Bacheca Padova Annunci gratuiti
    AAA Padova Annunci a Padova

  2. #2
    Sto cercando di sistemare la cosa in qesto modo: spedendo blocchi di email con 20 indirizzi al colpo, e richiamando il metodo: AddBCC una sola volta ogni volta. Ad ogni invio richiamo il metodo ClearBCCs() per ripulire gli indirizzi BCC.

    Può essere una soluzione? Altre idee?

    Codice PHP:
    require("config.php");

    # Recupero i topic del forum
    $query = @mysql_query("SELECT * FROM newsletter ");
    $righe mysql_num_rows($query);


    if (
    $righe==0) {
                      echo 
    " ";

    }
    else {

       
    $emails "";

       while(
    $result = @mysql_fetch_array($query))
       {

        
    $emails .= "\"" $result[email] . "\", "

        
    if ($i 20) {
         
         
    $nummails strlen($emails);
         
    $nummails $nummails 2;
         
    $emails substr($emails0$nummails);
         echo 
    "mails: "$emails
         
    $i 0;
         
    $email_to-> AddBCC($emails); 
         if (!
    $email_to->Send()) $message "Si ? verificato un errore nell' invio della mail di conferma".$email_to->ErrorInfo
         else 
    $message="Messaggio inviato con successo!";
         
    $email_to->ClearBCCs();
         
    $emails "";
         }

       }
    }


    require(
    "chiudi.php");

         
    $nummails strlen($emails);
         
    $nummails $nummails 2;
         
    $emails substr($emails0$nummails);
         echo 
    "mails: "$emails;  
         
    $i 0;
         
    $email_to-> AddBCC($emails); 

      if (!
    $email_to->Send()) $message "Si ? verificato un errore nell' invio della mail di conferma".$email_to->ErrorInfo
      else 
    $message="Messaggio inviato con successo!"

      
    $email_to->ClearAddresses(); 
      
    $email_to->ClearBCCs(); 
      
    $email_to->ClearAttachments(); 
    Valli di Chioggia
    Blog di Excel VBA Microsoft Excel e Visual basic
    Bacheca Padova Annunci gratuiti
    AAA Padova Annunci a Padova

  3. #3
    si questa è la soluzione, almeno quando ho incontrato lo stesso problema (che è da ricondursi al timeout dello script), inviavo "pacchetti" di mail di 5 redirezionando alla pagina stessa passandomi l'id dell'ultimo utente al quale era stata inviata la mail cosicchè lo script avrebbe reiniziato l'invio da lì.
    Naturalmente ordina il tuo set di dati in base all'id utente.
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  4. #4
    Grazie Max, la tua soluzione è forse migliore anche se più macchinosa.
    Praticamente tu richiami lo stesso script php passandogli di volta in volta un range diverso di utenti, quindi una send() ogni volta che richiami lo script.
    Io invece spacchetto e metto in ciclo i metodi send() e ClearBCCs(), ed effettivamente non so quanto corretto sia.
    In realtà la mia paura è che ci sia un limite imposto dal provider dell'hosting (aruba nel mio caso) che permette di spedire al max esempio a 100 indirizzi email all'ora (che siamo in una o + email).
    Questo per limitare gli spammer. Correggetemi se sbaglio!
    Sarei currioso di sapere cosa ne pensa: mtx_maurizio autore di quella bellissima pillola su PHPMailer.
    Valli di Chioggia
    Blog di Excel VBA Microsoft Excel e Visual basic
    Bacheca Padova Annunci gratuiti
    AAA Padova Annunci a Padova

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.