1. #1
    Débutant

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    4 979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 4 979
    Points : 2 098
    Points
    2 098
    Billets dans le blog
    1

    Par défaut envoyer un mail avec phpmailer sans afficher les balises html

    Bonsoir,

    comme l'indique le titre, je cherche à envoyer un mail où le body contient des balises html mais au lieu de les afficher, il faudrait qu'elles soient interprétées.
    Voici le code actuel :
    Code php : 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
      ...
    $msg  ="Message envoyé par ".$prenom." ".$nom." né";
      $msg .=" le ".$jour."/".$mois."/".$an.", à ".$lieu.", ".$marie."<br/>";
      if ($type=="pere") $msg.=" avec ".$nbenf." enfant".$s."<br/>";	
      $msg = htmlentities($msg);  
     
    //fin construction msg
    //------------------------
    $mail->CharSet = 'UTF-8';
    $mail->ContentType ='text/html';
     
    $mail->IsHTML(true);
    $mail->Host='smtp.neuf.fr'; 
    $mail->Body  = $msg; 
     
    if(!$mail->Send()) {
      echo 'Message was not sent.';
      echo 'Mailer error: ' . $mail->ErrorInfo;
    } 
      $mail->SmtpClose();
      unset($mail);
    et ce que ça me donne :
    Message envoyé par test_prénom test_nom_pere né le 25/02/2013, à Paris, marié <br/> avec 0 enfant<br/>
    Comment faire pour ces balises soient interprétées ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    septembre 2007
    Messages
    7 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : septembre 2007
    Messages : 7 122
    Points : 12 079
    Points
    12 079

    Par défaut

    Remplace la ligne $msg = htmlentities($msg); par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $msg = htmlentities($msg,ENT_NOQUOTES,'UTF-8',false);
    $msg = str_replace(array('&lt;','&gt;'),array('<','>'), $msg);
    $msg = str_replace(array('&amp;lt;','&amp;gt'),array('&lt;','&gt;'), $msg);
    A+.

  3. #3
    Débutant

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    4 979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 4 979
    Points : 2 098
    Points
    2 098
    Billets dans le blog
    1

    Par défaut

    Merci ; fallait connaître...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  4. #4
    Débutant

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    4 979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 4 979
    Points : 2 098
    Points
    2 098
    Billets dans le blog
    1

    Par défaut

    Comme j'ai
    Warning: htmlentities() expects at most 3 parameters, 4 given
    , que le 4e paramètre n'a été rajouté qu'en 5.2.3 et que le serveur n'est qu'en 4.4.3, je l'ai retiré : $msg = htmlentities($msg,ENT_NOQUOTES,'UTF-8');. Par contre, pour ça :
    Fatal error: Cannot redeclare class phpmailer in /mnt/113/sda/5/3/olympique.nivernais/scripts_laurents/phpmailer/class.phpmailer.php on line 21
    je n'ai pas d'idée : ligne 20 et 21 : Que puis-je faire ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  5. #5
    Membre éprouvé

    Homme Profil pro
    Développeur Web
    Inscrit en
    juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1

    Par défaut

    4.4.3 ... il est vraiment temps de mettre à jour le serveur.
    Tu as déjà une classe nommée phpmailer qui est incluse avant inclusion de class.phpmailer.php lors de l'exécution de ton script
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  6. #6
    Débutant

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    4 979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 4 979
    Points : 2 098
    Points
    2 098
    Billets dans le blog
    1

    Par défaut

    Ta réponse est logique ; pour voir, j'ai enlevé le "require" qui doit poser problème.
    Pour le 4.4.3, c'est le serveur d'une personne pour laquelle je travaille et qui est hébergée chez Free...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  7. #7
    Débutant

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    4 979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 4 979
    Points : 2 098
    Points
    2 098
    Billets dans le blog
    1

    Par défaut

    Tu as déjà une classe nommée phpmailer qui est incluse avant inclusion de class.phpmailer.php lors de l'exécution de ton script
    Bien que ce soit fort logique, ce message survient uniquement chez mon "client" (pas chez moi ) et sinon, j'ai bien isolé le fichier qui provoque cette erreur, puisque si je le remplace par une page vide, il n'y a rien. Mais dans ce fichier, il y a qu'une seule inclusion de "class.phpmailer.php" et si je la commente, y a quand même l'erreur ; no comprendo...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

+ Répondre à la discussion
Cette discussion est résolue.

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