Phpmailer: multidestinataires issues d'une table SQL
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Phpmailer: multidestinataires issues d'une table SQL



  1. #1
    olivier147

    Phpmailer: multidestinataires issues d'une table SQL


    ------

    Bonjour à tous,

    Je cherche en vain la façon d'envoyer des mails à plusieurs destinataires dont l'adresse provient d'une table SQL.
    Lorsque j'ai un seul destinataire dans ma table ça ne pose pas de problème, mais au delà voici l'erreur que j'ai : Erreur : You must provide at least one recipient email address.

    J'effectue dans un premier temps une requête sur ma table:

    Code PHP:
    $connexion mysql_query("SELECT email from table");
         
    $extract mysql_fetch_assoc($connexion);
         
    $email $extract['email']; 
    Plus loin j'utilise ce code pour envoyer mon mail:

    Code PHP:

      
    require('phpmailer/class.phpmailer.php'); 
    $headers "MIME-Version: 1.0"."\r\n";
        
    $headers .= "Content-type: text/html; charset=utf-8"."\r\n";
     
    $mail = new PHPMailer();
    $mail->Host 'smtp.domaine.fr';
    $mail->SMTPAuth   false;
    $mail->Port 25// Par défaut
    $mail->CharSet 'utf-8';
     
    // Expéditeur

    // Destinataire

    for($i=0;$i<count($email);$i++){
         
    $mail->AddAddress($email[$i]);
    }; 
    Ce code semble convenir à tout le monde mais chez moi ça ne fonctionne pas, j'imagine que je passe à côté de quelque chose....

    Pouvez vous m'aider?

    Merci

    -----

  2. #2
    Bluedeep

    Re : Phpmailer: multidestinataires issues d'une table SQL

    Bonjour

    Peut être que certaines lignes de la table n'ont pas la colonne email de renseignée.
    Essaye :
    Code:
    SELECT email from table where email <> '' and email is not null
    (comme j'ignore quel SGBD tu utilises, je ne sais pas si il distingue les chaines vides des chaines nulles).
    Dernière modification par Bluedeep ; 19/09/2016 à 13h14.

  3. #3
    olivier147

    Re : Phpmailer: multidestinataires issues d'une table SQL

    Bonjour Bluedeep,

    Pour le moment je n'ai que deux lignes dans mon tableau et les deux sont bien renseignées.

  4. #4
    Bluedeep

    Re : Phpmailer: multidestinataires issues d'une table SQL

    Citation Envoyé par olivier147 Voir le message
    Bonjour Bluedeep,

    Pour le moment je n'ai que deux lignes dans mon tableau et les deux sont bien renseignées.
    Alors, c'est sans doute un problème php : je ne peux t'être d'aucune aide (ayant développé une allergie profonde à ce langage )

  5. A voir en vidéo sur Futura
  6. #5
    olivier147

    Re : Phpmailer: multidestinataires issues d'une table SQL

    Merci quand même

    Quelqu'un aurait une autre idée?

  7. #6
    cherbe

    Re : Phpmailer: multidestinataires issues d'une table SQL

    Commence par vérifier la validité des adresses :
    Code:
    for($i=0;$i<count($email);$i++){
       echo  $email[$i].'<br>'; 
       $mail->AddAddress($email[$i]);
    };
    Pour avoir de l'argent devant soi, il faut en mettre de côté ! (proverbe lorrain)

  8. #7
    bobflux

    Re : Phpmailer: multidestinataires issues d'une table SQL

    Ton code ne récupère que la première ligne de résultat de ta requête...

    Code:
    $q = mysql_query("SELECT email from table"); 
    while( $r=mysql_fetch_assoc($q) )
    {
        $email = $r['email'];  
        $mail->AddAddress($email[$i]);
    }

  9. #8
    olivier147

    Re : Phpmailer: multidestinataires issues d'une table SQL

    Je pense que tu as raison, le soucis est là, j'ai modifié mais j'ai cette erreur: Notice: Undefined variable: row in /appli/projects/....

  10. #9
    olivier147

    Re : Phpmailer: multidestinataires issues d'une table SQL

    Au temps pour moi, erreur de manip....

  11. #10
    olivier147

    Re : Phpmailer: multidestinataires issues d'une table SQL

    Citation Envoyé par cherbe Voir le message
    Commence par vérifier la validité des adresses :
    Code:
    for($i=0;$i<count($email);$i++){
       echo  $email[$i].'<br>'; 
       $mail->AddAddress($email[$i]);
    };
    Bonjour Cherbe,

    j'ai testé, il me sort que la première lettre de chaque adresse mail....

  12. #11
    bobflux

    Re : Phpmailer: multidestinataires issues d'une table SQL

    My bad, j'avais laissé ton erreur ($email[$i]), il fallait bien sûr enlever le [$i] qui extrait la première lettre de la chaîne.

    Code:
    $q = mysql_query("SELECT email from table"); 
    while( $r=mysql_fetch_assoc($q) )
    {
        $email = $r['email'];  
        $mail->AddAddress($email);
    }
    Note que la boucle avec le for() ne sert à rien (sauf à lire l'email lettre par lettre comme tu sembles le faire), pour récupérer tous les résultats d'une requête SQL, il faut utiliser la forme ci-dessus...

  13. #12
    olivier147

    Re : Phpmailer: multidestinataires issues d'une table SQL

    Merci beaucoup ça fonctionne nickel ; -)

Discussions similaires

  1. [Immunologie] Normalisation de données issues d'un séquençage NGS (ARN)
    Par lukas44 dans le forum Biologie
    Réponses: 2
    Dernier message: 03/04/2016, 21h58
  2. Réponses: 0
    Dernier message: 27/08/2015, 16h38
  3. Current issues in cosmology
    Par stefjm dans le forum Archives
    Réponses: 10
    Dernier message: 26/02/2012, 16h23
  4. Les 30 propositions issues du débat
    Par invite0dbacdd0 dans le forum Environnement, développement durable et écologie
    Réponses: 2
    Dernier message: 26/07/2007, 19h55
  5. Nuage de particule issues du soleil.
    Par invite48f3b69d dans le forum Archives
    Réponses: 5
    Dernier message: 05/06/2006, 14h27