PHPMailer

Dundeefly Messages postés 17 Statut Membre -  
Dundeefly Messages postés 17 Statut Membre -
Bonjour,

J'ai un problème d'envoi de mail par PHPMailer:
Dans la string $Mail -> AddAdress, je souhaiterais prendre l'adresse du destinataire dans une base de donnée, mais je ne trouve pas comment écrire la bonne string.

J'ai essayé $Mail -> AddAdress ('test@test.com') et cela fonctionne bien.
Mais au lieu de "test@test.com", je souhaiterais avoir quelque chose comme $res['Email'], qui est une des colonnes de ma BDD.

Une idée ?
Configuration: Windows 7 Internet Explorer 7.0

8 réponses

  1. scriptiz Messages postés 1494 Statut Membre 425
     
    // on récupère le 4e enregistrement de la table utilisateurs dans ta base de données
    $req = mysql_query("SELECT email FROM utilisateurs WHERE id='4';");
    
    // on fetch cet enregistrement en un tableau associatif
    $res = mysql_fetch_array($req);
    
    // on ajoute le champs 'email' de ce tableau associatif à ton objet PHPMailer
    $Mail->AddAdress($res['email']);
    0
    1. Dundee
       
      Merci pour ta réponse, mais cela ne marche pas et je ne comprend pas pkoi. Voici mon code complet pour ce que je veux faire, c'est-à-dire, afficher un bon anniversaire à ola bonne personne (ca ca marche déjà) et en plus lui envoyer un mail avec un message (ca j'y arrive pas sauf si je mets directement une adresse mail:
      $mail->AddAddress('exemple@exemple.com');

      <?php
      // On se connecte d'abord à MySQL :
      mysql_connect("localhost", "site", "mot_de_passe");
      mysql_select_db("anniversaire");

      // On affiche les personnes du jour
      $jour = date("d");
      $mois = date("m");
      $req = mysql_query("SELECT Nom, Prenom, Email FROM anniversaire WHERE Jour='$jour' AND Mois='$mois'");

      $nb = mysql_num_rows($req); // Compte le nombre de lignes retournées

      if($nb > 0)
      {
      while($res = mysql_fetch_array($req))

      echo ' Bon anniversaire à <strong>'.$res['Prenom'].' '.$res['Nom'].'</strong><br />';
      ?>
      <img hspace="10" src="../Images/png/annif.gif" style="width: 100px; height: 120px;" />
      <?php
      // Envoi d'un mail
      require "../class.phpmailer.php";
      $mail = new PHPmailer();
      $mail->IsHTML(true);
      $mail->From='remyseba@gmail.com';
      $mail->AddAddress($res['Email']); ici que çà coince
      $mail->AddReplyTo('remyseba@gmail.com');
      $mail->Subject='Test';
      $mail->Body='<html><body><center><font size=8>l\'image est juste en dessous</font><br>';
      $mail->Body.='<img src="../Images/png/annif.gif" style="width: 100px; height: 120px;">';
      $mail->Body.='</center></body></html>';

      if(!$mail->Send()){
      echo $mail->ErrorInfo;
      }
      else{
      echo 'Mail envoyé avec succès';
      }
      unset($mail);
      // Fin de l'envoi

      }
      else
      {
      echo "Pas d'anniversaire aujourd'hui";
      }

      // On se déconnecte de MySQL
      mysql_close();
      ?>
      0
  2. scriptiz Messages postés 1494 Statut Membre 425
     
    Juste avant la ligne où ça coince fait ceci :

    echo $res['Email'];
    exit();


    Regarde si ça t'affiche bien l'email car peut-être que ça récupère un email vide.
    0
  3. Dundeefly Messages postés 17 Statut Membre
     
    J'ai essayé, mais effectivement rien ne s'affiche, pourtant j'ai bien une adresse mail à l'emplacement du 14 janvier dans ma BDD. Par contre je l'ai peut-être mal configurée:

    Champ Type Interclassement Attributs Null Défaut Extra Action
    id int(11) Non
    Nom varchar(20) latin1_swedish_ci Non
    Prenom varchar(20) latin1_swedish_ci Non
    Jour int(11) Non
    Mois int(11) Non
    Email varchar(30) latin1_swedish_ci Non

    Sinon je vois pas.... (sniffff).
    0
  4. scriptiz Messages postés 1494 Statut Membre 425
     
    Euh ton while il n'y a pas d'accolade ouvrant donc il ne s'applique que à l'echo qui le suit. Donc après le $res sera vide.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Dundeefly Messages postés 17 Statut Membre
     
    Je dois remettre la ligne du while avant mon require alors ?

    Enfin je vais essayer, mais je crains....

    Merci d'avance.
    0
  7. Dundeefly Messages postés 17 Statut Membre
     
    En effet, j'ai ce message d'erreur:

    Fatal error: Class 'PHPmailer' not found in /customers/bastinpaliseul.be/bastinpaliseul.be/httpd.www/Pages/Accueil.php on line 77

    Je pige pas....
    0
  8. scriptiz Messages postés 1494 Statut Membre 425
     
    Met ton require("phpmailer.php") tout en haut de ton code en dehors de toute fonction ou boucle itérative.

    0
  9. Dundeefly Messages postés 17 Statut Membre
     
    Je l'ai déplacé en-dessous de :
    // On se connecte d'abord à MySQL :
    mysql_connect("localhost", "site", "mot_de_passe");
    mysql_select_db("anniversaire");
    require "../class.phpmailer.php";

    Mais tjs pas: Erreur: Language string failed to load: instantiate

    Grrrrrrrrrrrrrrrrrrr.....
    0