Page 1 sur 1

probleme de mail HTML

Posté : 11 déc. 2007, 14:36
par VaN
Bonjour,

je souhaite envoyer un mail HTML, suite à l'envoi d'un formulaire. j'ai bien spécifié les info de l'entête :
// Envoi du mail
		$entete = "MIME-Version: 1.0\r\n";
		$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
		$entete .= "From: ".$_POST['mail']."\r\n";
Pourtant lorsque je reçois le mail, les caractères HTML s'affichent tel quel, et ne sont pas analysés comme de l'HTML.

Le script est executé sur un serveur mutualisé 1and1.
Le mail est lu via Thunderbird.

Est ce que le problème vient d'un de ces deux points ? Je ne pense pas que cela vienne de Thunderbird, vu que je reçois plusieurs mail HTML par jour sur ce compte.

Posté : 11 déc. 2007, 15:12
par Ryle
Rien à redire sur cette portion de code.. faudrait voir le reste... tu ne fais pas de htmlentities() ou autre sur ton message ?

Posté : 11 déc. 2007, 15:31
par VaN
Je fais ça :
$message 	= htmlspecialchars($message);
		$message 	= stripslashes($message);
		$message	= nl2br($message);
Le probleme peut venir de là ? Je teste sans.

Effectivement, ça fonctionne très bien sans le htmlspecialchars().

Par contre, un autre petit problème, moins immportant : Mes caractères accentués sont mal encodés, par un exemple un "ç" apparait sous la forme "ç". Il y'a un moyen de résoudre ça ?

Posté : 11 déc. 2007, 15:48
par Ryle
htmlspecialchars convertit les caractères spéciaux en entités HTML... du coup tes "< balise >" deviennent "< balise >" et forcément, le client de messagerie a beaucoup plus de mal à interpréter le html d'origine ;)

Quant à l'encodage, tu spécifies dans ton entête que ton mail est codé en iso-8859-1. Si ce n'est pas le cas et que tes données sont en utf8 par exemple, il serait sans doute judicieux de le rectifier ou de les décoder pour que les deux correspondent :)