Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1
    Débutant
    Homme Profil pro Laurent
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    4 402
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : octobre 2006
    Messages : 4 402
    Points : 1 758
    Points
    1 758

    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 :
    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 Andry Aimé
    Inscrit en
    septembre 2007
    Messages
    7 089
    Détails du profil
    Informations personnelles :
    Nom : Homme Andry Aimé
    Localisation : Ile Maurice

    Informations forums :
    Inscription : septembre 2007
    Messages : 7 089
    Points : 11 110
    Points
    11 110

    Par défaut

    Remplace la ligne $msg = htmlentities($msg); par
    Code :
    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 Laurent
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    4 402
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : octobre 2006
    Messages : 4 402
    Points : 1 758
    Points
    1 758

    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 Laurent
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    4 402
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : octobre 2006
    Messages : 4 402
    Points : 1 758
    Points
    1 758

    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 éclairé
    Homme Profil pro Karim
    Développeur Web
    Inscrit en
    juin 2011
    Messages
    203
    Détails du profil
    Informations personnelles :
    Nom : Homme Karim
    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 : 203
    Points : 362
    Points
    362

    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 Laurent
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    4 402
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : octobre 2006
    Messages : 4 402
    Points : 1 758
    Points
    1 758

    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 Laurent
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    4 402
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : octobre 2006
    Messages : 4 402
    Points : 1 758
    Points
    1 758

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •