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

Résolu
AbdoulZ Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
AbdoulZ Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   527
 
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   Statut Membre Dernière intervention   1
 
salut!

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