Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    problema con mail() a più destinatari

    salve a tutti,
    spro possiate darmi una mano. ho un problema con l'invio di email da un a pagina php. gli indirizzi sono in una tabella di un db mysql, la pagina esegue la query e invia le email. il problema è che il testo dell'email viene ripetuto n volte man man che la query scorre i destinatari. mi spiego meglio, ad esempio se il mio indirizzo è il quinto della lista, riceverò il testo ripetuto 5 volte. di seguito il codice utilizzato.

    Codice PHP:
    $cerca_email="select distinct email, testo from email"
    //die("$cerca_email - email -> $email"); 
    $cerca_email2=mysql_query("$cerca_email"); while(list($email)=mysql_fetch_row($cerca_email2)) 

        
    // Removes html tags and whitespace from input data                 
            
    $email =strip_tags(trim($email));                 
            
    $subject ="Estensione convenzione AssoRisparmio";                 
            
    $body =strip_tags(trim($body));                 
            
    $from ="info@assorisparmio.it";                 
          
            
    $headers ="Mime-Version: 1.0\r\nContent-Type:text/plain charset=\"iso-8859-1\"\r\n";                 
             
    $headers .="Content-Transfer-Encoding: 7bit\r\n";                 
             
    $headers .="X-Priority: 3\r\n";                 
             
    $headers .="X-PHP-Mail-Priority: Normal\r\n";                  
    $headers .="X-Mime-OLE: Produced by MS MimeOLE v5.00.3000.100\r\n";                 
    $headers .="X-Mailer: PHP Mail generated by:PHPMailer v1.0\r\n";                 $headers .="From: $from\r\n";                 
    $headers .="Reply-to: $from\r\n";         
    $message .="\nInvio testo a -> $email";                 
    $message .="\n\n\n\n Cordiali Saluti \n Assorisparxxxx";                 
    $message .="\n-------------------------------------\n";                 
    $message .="www.assorisparxxx.it\n";                                  $message .="==================================\n";                 
    // formats the input and sends the email                 @$send=mail($email,$subject,$message,$headers);                                 // prints success or failure to the user                              }        
    header("Location: url]http://[/url]".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."email.php?testo=ok"); 
    help... qualcuno può aiutarmi?

    grazie mille

  2. #2
    Utente di HTML.it L'avatar di VsYou
    Registrato dal
    Oct 2007
    Messaggi
    29
    Ciao, la cosa più semplice è mettere in un array i contatti che sono nel db con la funzione
    Codice PHP:
    mysql_fetch_array(); 
    e poi con la funzione
    Codice PHP:
    mail() 
    invii le mail
    a ciclo tramite
    Codice PHP:
    foreach(){} 

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    potrebbe anche implodere le email estratte dal db ed inviarle in CC o CCN

  4. #4
    come consigliato ho provato a modificare come sotto.

    Codice PHP:
    $cerca_email="select distinct email from email"
    //die("$cerca_email - email -> $email"); 
    $cerca_email2=mysql_query("$cerca_email"); 
    $email=mysql_fetch_array($cerca_email2); 
    foreach (
    $email as $email2) { 
    purtroppo si verifica lo stesso problema le email le invia, ma ripete il testo n volte.
    ho sbagliato qualcosa nella modifica?

    grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    19
    Ciao,
    dando un'occhiata veloce devo farti un paio di osservazioni:
    nella query vengono richiamati due campi: email e testo, a te non serve richiamare solo il campo email?
    Non ho ben capito a cosa serve la variabile $body
    Comunque, prova con questo codice:

    Codice PHP:
    $query="select distinct (email) from email";
    //die("$cerca_email - email -> $email");
    $result=mysql_query("$query");          

    while(
    $row=mysql_fetch_array($result))
    {  
    $email $row["email"];   

    $message .="\nInvio testo a -> $email";                 
    $message .="\n\n\n\n Cordiali Saluti \n Assorisparxxxx";                 
    $message .="\n-------------------------------------\n";                 
    $message .="www.assorisparxxx.it\n";                                  
    $message .="==================================\n";
                     
    $email =strip_tags(trim($email));                 
    $subject ="Estensione convenzione AssoRisparmio";                 
    //$body =strip_tags(trim($body));                 
    $from ="info@assorisparmio.it";                 
          
    $headers ="Mime-Version: 1.0\r\nContent-Type:text/plain charset=\"iso-8859-1\"\r\n";                 
    $headers .="Content-Transfer-Encoding: 7bit\r\n";                 
    $headers .="X-Priority: 3\r\n";                 
    $headers .="X-PHP-Mail-Priority: Normal\r\n";                 
    $headers .="X-Mime-OLE: Produced by MS MimeOLE v5.00.3000.100\r\n";                 
    $headers .="X-Mailer: PHP Mail generated by:PHPMailer v1.0\r\n";                 
    $headers .="From: $from\r\n";                 
    $headers .="Reply-to: $from\r\n";                 
                     
    @
    $send=mail($email,$subject,$message,$headers);                                                            
    }        

    header("Location:[url]http://[/url]".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."email.php?testo=ok"); 
    "Vi incoraggeremo a sviluppare le tre grandi virtù di un programmatore: la pigrizia, l'impazienza e l'arroganza"

    -Larry Wall, 'Programming Perl', 1991

  6. #6
    grazie mille,

    ho provato il codice, ma purtroppo il risultato non è cambiato

    il risultato inviato nell'email è:


    Invio testo a -> email@gmail.com
    Cordiali Saluti Assorisparxxxx
    -------------------------------------
    www.assorisparxxx.it

    ==================================

    Invio testo a -> email@email.it
    Cordiali Saluti Assorisparxxxx
    -------------------------------------
    www.assorisparxxx.it

    ==================================
    non riesco a capire dove possa essere l'errore. i campi in più di prima erano residui di un vecchio copia e incolla, scusa

    help

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    19
    Lo stesso problema... eppure non dovrebbe...
    intanto c'è un altro piccolo errore di sintassi.
    sulla prima attribuzione di valore della variabile $message va messo "=" e non ".=", in questo modo:
    Codice PHP:
    ...
    $message ="\nInvio testo a -> $email";                 
    $message .="\n\n\n\n Cordiali Saluti \n Assorisparxxxx";                 
    $message .="\n-------------------------------------\n";                 
    $message .="www.assorisparxxx.it\n";                                  
    $message .="==================================\n";
    ... 
    comunque, sei sicuro che il codice in esame non si trovi dentro un'iterazione tipo un ciclo di for o un altro while?
    "Vi incoraggeremo a sviluppare le tre grandi virtù di un programmatore: la pigrizia, l'impazienza e l'arroganza"

    -Larry Wall, 'Programming Perl', 1991

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    19
    Un'altra cosa:
    quel
    Codice PHP:
    @$send=mail($email,$subject,$message,$headers); 
    togli $send= e scrivilo così:
    Codice PHP:
    @mail($email,$subject,$message,$headers); 
    "Vi incoraggeremo a sviluppare le tre grandi virtù di un programmatore: la pigrizia, l'impazienza e l'arroganza"

    -Larry Wall, 'Programming Perl', 1991

  9. #9
    funzionaaaaaaaaaaaaaaaaaaaaaaaaaa...

    grazie milleeeeeeee

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    19
    Benissimo!
    Quindi qual era il problema?
    "Vi incoraggeremo a sviluppare le tre grandi virtù di un programmatore: la pigrizia, l'impazienza e l'arroganza"

    -Larry Wall, 'Programming Perl', 1991

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.