Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Problemi PHP mailer

  1. #1

    Problemi PHP mailer

    Ciao a tutti, sto usando phpmailer per l'ìinvio di mail autenticate via smtp del mio sito.

    In breve i passaggi che faccio sono: query al database per recuperare gli indirizzi mail. Metto gli indirizzi in un array e poi tramite un ciclo for mando le mail a tutti. alla fine di ogni ciclo inserisco ClearAddress() per evitare mail superflue.

    Il problema:

    Quando vado a controllare le mail arrivate su quegli indirizzi mi accorgo che ne arrivano sempre più di una.

    Avete una soluzione a questo problema?

    Grazie in anticipo.

  2. #2
    Nessuno riesce a darmi una mano?

    Vi posto anche il codice.

    $tipo_report=$_GET['tipo_report'];
    $ente=$_GET['ente'];

    if ($connessione=mysql_connect("xxxxx","database","pa ssword")){


    if(mysql_select_db("db",$connessione)){

    $query="SELECT email FROM tabella WHERE nome_societa='$ente'";

    $result=mysql_query($query,$connessione);

    $numero=mysql_num_rows($result);

    $arr_table_result=mysql_fetch_full_result_array($r esult);





    $mail = new PHPMailer();
    $mail->From = "xxxxxxx@yahoo.it";
    $mail->FromName = "Nome";
    $mail->Subject = "Nuovo Report Disponibile ";
    $mail->Body = "Gentile Cliente \n"
    ."La informiamo che un nuovo Report ".$tipo_report ." e' disponibile sul sito web www.miosito.it\n"

    ."Cordialmente ";

    $mail->Mailer = "smtp";
    $mail->Host = "smtp.mail.yahoo.com";
    # se il server smtp richiede autorizzazione:
    $mail->SMTPAuth = TRUE;
    $mail->Username = "usn";
    $mail->Password = "pwd";


    $dest=$arr_table_result[0]['email'];

    //metto il primo elemento dell'array come destinatario principale della mail
    $mail->AddAddress($dest);

    if($numero>1){
    for($i=1;$i<$numero;$i++){

    $mail->AddBCC($arr_table_result[$i]['email']);
    // gli altri destinatari vengono inseriti come ccn
    }
    }
    if($mail->Send()) {


    header('location:/arearis/pagina_amministratore.php');
    }
    else{

    header('location:/arearis/pagina_amministratore.php');
    }


    $mail->ClearAddresses();
    }
    }
    mysql_close($connessione);

  3. #3
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    Ciao,

    potrebbe essere che nella lista che hai in db, ci sono dei doppioni?

    Nella select metti DISTINCT


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

  4. #4
    ciao e grazie, non credo sia un problema di doppioni. perchè, da varie stampe di prova che ho fatto fare, vedo che le uniche mail nell'array sono quelle che mi servono.

  5. #5
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    questa parte di codice

    Codice PHP:
    if($mail->Send()) 
    {
        
    header('location:/arearis/pagina_amministratore.php');
    }
    else
    {
        
    header('location:/arearis/pagina_amministratore.php');
    }

    $mail->ClearAddresses(); 
    la cambierei con

    Codice PHP:

    bool res 
    $mail->Send();
    $mail->ClearAddresses();

    if(
    res)
    {
        
    header('location:/arearis/pagina_amministratore.php');
    }
    else
    {
        
    header('location:/arearis/pagina_amministratore.php');

    poi volevo chiederti una cosa: che versione di phpemailer stai usando?

    io ho lavorato con questa classe, e la versione che adoperavo era la 2.0.4.

    non vorrei che il problema del doppio invio di email, sia dovuto ad un bug della classe.


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

  6. #6
    Grazie echoweb, avevo sperato che funzionasse, infatti alla prima prova effettuata ogni destinatario ha ricevuto 1 sola mail.
    Adesso ho fatto un altra prova, e invece di una mail abbiamo ricevuto 3 mail.
    Sto usando phpmailer 2.0.4.

    PS: la tua istruzione bool res=..... non me la prendeva buona, e ho dovuto fare $res=mail->Send(); come mai?


    Grazie ancora

  7. #7
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    Errore mio..

    Al posto di bool = res basta scriverw $res = false e dentro IF bisofna usare $res


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

  8. #8
    allora devo fare $res=false;
    poi $res=$mail->Send();
    e infine if ($res)......[...]

    Giusto?


    Provo e ti faccio sapere

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.