IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Écrire le pseudo dans chaque mail multiple avec PHPMailerl


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Par défaut Écrire le pseudo dans chaque mail multiple avec PHPMailerl
    Bonjour a tous,

    je voudrais mettre le nom du pseudo dans chaque mail dans le body du message.
    je fais une boucle pour mes envoies de messages incluant le pseudo mais c'est toujours le meme nom de pseudo qui s'écrie et pourtant mes lettres se destinent bien aux bons expéditeurs !

    Si quelqu'un peut m'aider la dessus car en ce moment, je ne vois pas de solution.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $mail = new PHPmailer(); 
            $mail->IsHTML(true); 
            $mail->CharSet = "utf-8";
            $mail->From='info@monsite.com'; 
    		foreach($tableau_res as $id => $info) {
    		$mail->AddBCC ($info["courriel"],$info["pseudo"]); 
         $mail->AddReplyTo('info@monsite.com');      
            $mail->Subject='Invitation au party d\'Halloween de la communauté régionale.'; 
            $mail->Body='<html><head><style>p{font-size: larger;}.petit{font-size: 90%;}img{float: left; clear: right; margin-right: 8px;}</style></head>'; 
    		$mail->Body.='<body><img src="http://www.monsite.com/images/logoAnnonceHalloween.jpg">'; 
    		$mail->Body.='<h3>Bonjour  '.$info["pseudo"].' !</h3><p> C\'est avec grand plaisir que monsite.com t\'invite au grand party d\'halloween de la communauté régionale</p>'; 
    		$mail->Body.='<p>Eh bien ! Ne manque pas ta chance car ca sera samedi le 31 octobre prochain que ca se passera.</p>';
    		$mail->Body.='<p>Il y aura musique et danse avec la DJ Manon  Choquette, prix pour le meilleur costume.</p>';
    		$mail->Body.='<p> Pour en savoir plus, connecte-toi sur monsite.com pour voir tous les détails et réserver ta place.</p><p>http://www.monsite.com/login.php</p>';
    		$mail->Body.='<p class="petit">Si tu as oublié ton mot de passe, clique sur <em>Mot de passe oublié </em>pour en recevoir un nouveau. n\'oublie pas de remettre ton mot de passe a toi dans ta page <strong>Modifier mon profil</strong> pour te reconnecter à nouveau.</p>';
    		$mail->Body.='<p>Attention ! Ne pas répondre directement à ce courriel, car nous ne verrons pas votre message. Pour nous contacter, utilise plutot la rubrique <strong>Contactez-nous </strong>pour nous écrire.</p></body></html>';
    		}
     
    	  if(!$mail->Send()){ //Teste si le return code est ok. 
              echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7) 
            } 
            else{      
              $messageSucces= '<h3>Mails envoyés avec succès !</h3>'; 
            } 
     
            unset($mail);
    merci !

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Ce que tu fais actuellement, c'est un seul envoi de mail à plusieurs destinataires en même temps. Donc forcément, tous les destinataires vont recevoir le même mail, contenant un seul pseudo (celui du dernier de la liste, en application du principe "c'est celui qui parle en dernier qui a raison")
    Si tu veux que chaque destinataire reçoive un mail différent (même si la seule différence est le pseudo), il faut faire autant d'envoi qu'il y a de destinataires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    $mail = new PHPmailer();
    $mail->IsHTML(true);
    $mail->CharSet = "utf-8";
    $mail->From = 'info@monsite.com';
    $mail->AddReplyTo('info@monsite.com');
    $mail->Subject = 'Invitation au party d\'Halloween de la communauté régionale.';
     
    foreach($tableau_res as $id => $info) {
        // on nettoie les adresses déjà enregistrées
    	$mail->clearAddresses();
    	$mail->AddAddress($info["courriel"], $info["pseudo"]);
     
        $mail->Body = '<html><head><style>p{font-size: larger;}.petit{font-size: 90%;}img{float: left; clear: right; margin-right: 8px;}</style></head>';
        $mail->Body.= '<body><img src="http://www.monsite.com/images/logoAnnonceHalloween.jpg">';
        $mail->Body.= '<h3>Bonjour  ' . $info["pseudo"] . ' !</h3><p> C\'est avec grand plaisir que monsite.com t\'invite au grand party d\'halloween de la communauté régionale</p>';
        $mail->Body.= '<p>Eh bien ! Ne manque pas ta chance car ca sera samedi le 31 octobre prochain que ca se passera.</p>';
        $mail->Body.= '<p>Il y aura musique et danse avec la DJ Manon  Choquette, prix pour le meilleur costume.</p>';
        $mail->Body.= '<p> Pour en savoir plus, connecte-toi sur monsite.com pour voir tous les détails et réserver ta place.</p><p>http://www.monsite.com/login.php</p>';
        $mail->Body.= '<p class="petit">Si tu as oublié ton mot de passe, clique sur <em>Mot de passe oublié </em>pour en recevoir un nouveau. n\'oublie pas de remettre ton mot de passe a toi dans ta page <strong>Modifier mon profil</strong> pour te reconnecter à nouveau.</p>';
        $mail->Body.= '<p>Attention ! Ne pas répondre directement à ce courriel, car nous ne verrons pas votre message. Pour nous contacter, utilise plutot la rubrique <strong>Contactez-nous </strong>pour nous écrire.</p></body></html>';
     
        if (!$mail->Send()) { //Teste si le return code est ok.
            echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
        }
        else {
            $messageSucces = '<h3>Mails envoyés avec succès !</h3>';
        }
     
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre éclairé Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Par défaut
    merci bien pour ta réponse Celira mais ca ne fonctionne pas

    de 1 quand j'écrie ca : $mail->clearAddresses();
    ca supprime tous les mails dans le tableau et bien que ca génère une envoi avec succès, ya aucun mail qui se rend

    et de 2
    c'est toujours le même pseudo qui est écrit

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Ça dit quoi ?

  5. #5
    Membre éclairé Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Par défaut
    merci de ton intéret a cette question !!

    ca dit !:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    array(3) { 
      ["id"]=> string(2) "16" 
      ["pseudo"]=> string(8) "rangaine" 
      ["courriel"]=> string(16) "galant50@live.ca" 
    } 
    array(3) { 
      ["id"]=> string(2) "17" 
      ["pseudo"]=> string(10) "Natascha" 
      ["courriel"]=> string(29) "natascha.beausejour@gmail.com" 
    } 
    array(3) { 
      ["id"]=> string(3) "177" 
      ["pseudo"]=> string(7) "Mantrav" 
      ["courriel"]=> string(22) "mantrav360@hotmail.com" 
    }

  6. #6
    Invité
    Invité(e)
    Par défaut
    $info est un array contenant ici 3 personnes ! (au lieu d'une attendue).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($tableau_res);
    ?

    Sinon, il faut 2 foreach :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    foreach($tableau_res as $id => $infos) {
      foreach($infos => $info) {

    N.B. Je suis surpris qu'avec ton code initial, tu reçoives quand même des résultats... re-

Discussions similaires

  1. écrire du php dans un nouveau fichier avec php
    Par zedinfo dans le forum Langage
    Réponses: 2
    Dernier message: 18/04/2014, 17h58
  2. Réponses: 2
    Dernier message: 20/12/2010, 12h21
  3. Réponses: 3
    Dernier message: 08/06/2010, 14h42
  4. Réponses: 2
    Dernier message: 04/06/2008, 14h51
  5. Connexion avec pseudo et non mail
    Par kevinf dans le forum Langage
    Réponses: 9
    Dernier message: 06/08/2006, 17h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo