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

    PhpMailer invio multiplo

    Buon pomeriggio.
    Ho una newsletter, gli utenti si registrano e a seconda della nazionalità invio loro una mail con la traduzione.
    Al momento soltanto italiano e inglese.
    Vorrei ottenere invio di email distinte, dove se all'invio trovo un utente inglese invierò il testo tradotto, viceversa per un utente italiano.
    Ho fatto 2mila prove da ieri, ma non ho ottenuto quello che speravo.
    Questo è quello che faccio.

    Codice PHP:
    function test_Html() {    
    $arrNaz = array("it","en");//array delle nazioni che ho tradotto    
    //$_SESSION['nazione'] è un array che creo esterno alla pagina phpmailer    
    foreach($_SESSION['nazione'] as $key => $nazioni){        
    //se la nazione non è tra qualle delle traduzioni(es: fr), l'utente francese visualizzerà comunque inglese        
    if(!in_array($nazioni,$arrNaz)){            
    $nazioni 'en';        
    }        
    $sqlMax mysql_query("SELECT a.descrizione FROM ".$_SESSION['tb']." AS c LEFT JOIN tb_descrizione_iten AS a ON a.id_rs = c.id AND a.id_tab = c.id_tab WHERE c.id = ".$_SESSION['id']." AND a.lingua='".$nazioni."'");        
    $this->Mail->Body utf8_decode($rows['descrizione']);    
    }    
    $this->Mail->IsHTML(true);   
    //$_SESSION['Email'] è un array che creo esterno alla pagina phpmailer    
    foreach($_SESSION['Email'] as $key => $email) {        
    $this->Mail->clearAllRecipients();        
    $this->Mail->AddAddress($email,"");        
    if(!
    $this->Mail->Send()){            
    echo 
    "ERRORE invio indirizzo: ".$email."<br/>";            
    return 
    false;        
    }        
    else{           
    if(
    chkEmail($email)) {
    //controllo su conformità email, se @ presente, se .com o .it ci sono                
    echo "Mail inviata a: ".$email."<br/>";                
    //return true;            
    }            
    else{                
    echo 
    "Indirizzo email errato, mail non inviata: ".$email."<br/>";                
    //return false;            
    }        
    }    
    }

    Grazie dell'aiuto.

  2. #2
    Puoi scorrere gli utenti a cui invii la mail, se l'utente è inglese allora prendi il testo inglese altrimenti prendi il testo italiano e invii la mail.
    Sul codice che hai postato (senza indentazione si capisce poco ma va bene) hai 2 cicli praticamente inutili, devi scorrere gli utenti e ad ogni utente setti il testo e invii la mail.

  3. #3
    Perdonami, dato il codice che ho postato, tu come faresti?
    Grazie mille.

  4. #4
    scusami, ma come faccio a scorrere i due array senza i due cicli?

  5. #5
    risolto in questo modo:
    Codice PHP:
    function test_Html() {include "../inc/connect.php";
    for (
    $i 0$i <= count($_SESSION['arrEmail'])-1$i++) {
    $this->Mail->clearAllRecipients();
    $sqlMax mysql_query("SELECT a.descrizione,c.struttura                    
    FROM "
    .$_SESSION['tb']." AS c                    LEFT JOIN tb_descrizione_iten AS a ON a.id_rs = c.id AND a.id_tab = c.id_tab                    
    WHERE c.id = "
    .$_SESSION['id']." AND a.lingua='".$_SESSION['arrNazione'][$i]."'");
    $rows mysql_fetch_array($sqlMax) or die ("La query non &egrave; stata eseguita!"mysql_error());        $destinatario $_SESSION['arrEmail'][$i];

    $this->Mail->Body "<html xmlns='http://www.w3.org/1999/xhtml'>.....";
    $this->Mail->IsHTML(true);
    $this->Mail->AddAddress($destinatario,"");
    if(!
    $this->Mail->Send()){
    echo 
    "ERRORE invio indirizzo: ".$destinatario."<br/>";
    return 
    false;
    }
    else{
    if(
    chkEmail($destinatario)) {
    echo 
    "Mail inviata a: ".$destinatario;
    }
    else{
    echo 
    "Indirizzo email errato, mail non inviata: ".$destinatario."<br/>";
    }
    }
    }

    Grazie mille.

    PS: non capisco perché questo form non indenta il codice
    Ultima modifica di ANTAGONIA; 06-04-2018 a 11:03

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 © 2024 vBulletin Solutions, Inc. All rights reserved.