Mon code html ne s'execute pas dans mon mail!
Résolu
AbdoulZ
Messages postés
10
Statut
Membre
-
AbdoulZ Messages postés 10 Statut Membre -
AbdoulZ Messages postés 10 Statut Membre -
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:
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:
- Mon code html ne s'execute pas dans mon mail!
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Windows live mail - Télécharger - Mail
1 réponse
Salut,
Le problème vient simplement de cette ligne :
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
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
Effectivement le problème venais de labà.
Merci Beaucoup pour ton aide.