Mon code html ne s'execute pas dans mon mail!

Résolu/Fermé
AbdoulZ Messages postés 10 Date d'inscription dimanche 3 mai 2015 Statut Membre Dernière intervention 11 décembre 2017 - Modifié par AbdoulZ le 23/03/2016 à 11:30
AbdoulZ Messages postés 10 Date d'inscription dimanche 3 mai 2015 Statut Membre Dernière intervention 11 décembre 2017 - 24 mars 2016 à 16:00
Bonjour,

je travaille sur un site web depuis peu, et j'ai voulu intégrer un système de newsletter dans mon site. Presentement le script marce correctement sauf que l'orsque j'envoi le mail, le code html ne s'execute pas et il s'affiche comme tel. j'ai fouiller de auce à droite mais je ne parvien toujours pas à detecter la source du problème malré que j'ai mis les bons headers.

Merci d'avance pour votre aide qui me sera sans doute precieuse!

voici mon code:
$news = $bdd->query('SELECT contenu, date_article FROM news ORDER BY id
DESC LIMIT 0, 5');
$fichier_message = "<html>
<head>
<title>Newsletter de hightechschool</title>
</head>
<body bgcolor='black'>
<font face='verdana'><font color='white'><font size='5'><p
align='center'><font color='red'><u>Balzac61</u></font></p></font>
<p align='left'>Voici les dernières news de High-Tech School :<br /><ul>";
//On définit le message.
while($donnee = $news->fetch())
{
$fichier_message .= '<li>'.$donnee["contenu"].'le('.
$donnee["date_article"].')</li>';
}
$fichier_message .= '</ul></body>
</html>';
$liste_vrac = $bdd->query("SELECT email FROM newsletter");
$liste = 'example@example.fr';
while ($donnees = $liste_vrac->fetch())
{
$liste .= ',';
$liste .= $donnees['email'];
}
$message = $fichier_message;
$destinataire = $liste;
$date = date("d/m/Y");
$objet = "Newsletter de High-Tech School".$date."";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$headers .= 'From: hightechschool@hightechschool.heb3.org' . "\r\n";
$headers .= 'Bcc:' . $liste . '' . "\r\n";
$fichier_message=htmlspecialchars($fichier_message);
if ( mail($destinataire, $objet, $fichier_message, $headers) )
{
?>
Envoi de la newsletter réussi.
<?php
}
else
{
?>
Échec de l'envoi de la newsletter.
<?php
}
?>
A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
24 mars 2016 à 14:44
Salut,

Le problème vient simplement de cette ligne :
$fichier_message=htmlspecialchars($fichier_message);


En effet tu transforme ton code html en entités html permettant justement d'afficher les balises et les caractères réservées au html dans un document html.

Si tu veux éviter les injections xss (ce qui est une bonne chose), il faut appliquer cette fonction uniquement sur les données insérées dans le code html et non sur le code html lui-même.

Bonne journée
0
AbdoulZ Messages postés 10 Date d'inscription dimanche 3 mai 2015 Statut Membre Dernière intervention 11 décembre 2017 1
24 mars 2016 à 16:00
salut!

Effectivement le problème venais de labà.
Merci Beaucoup pour ton aide.
0