probleme de mail HTML

VaN
Mammouth du PHP | 1107 Messages

11 déc. 2007, 14:36

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 déc. 2007, 15:12

Rien à redire sur cette portion de code.. faudrait voir le reste... tu ne fais pas de htmlentities() ou autre sur ton message ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

VaN
Mammouth du PHP | 1107 Messages

11 déc. 2007, 15:31

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 ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 déc. 2007, 15:48

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...