Problème caractère email

WRInaute impliqué
Bonjour,
Voici mon code :

Code:
$entete = "vous a envoyé un truc " ;
$headers = "From: \"loulou\"<ddd.com@gmail.com>\n";
$headers .= "Reply-To: ddd.com@gmail.com\n";
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";

Tout fonctionne bien sauf le titre du message, au lieu de recevoir "vous a envoyé un truc " je reçois "vous a envoy<?> un truc "
le <?> est un losange noir avec ? blanc :lol:

J'ai essayé de changer
Code:
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";
par
Code:
$headers .= "Content-Type: text/html; charset=\"Utf-8\"";

mais dans ce cas les "é" du corps du message se transforment en losange noir :(

Merci pour votre aide.
 
WRInaute impliqué
ah ben ça ne fera pas avancer le chmilblik, mais j'ai exactement le même soucis en ce moment... :)
J'ai l'impression que l'encodage spécifié ne s'applique qu'au corps du message, pas aux entêtes.
 
WRInaute impliqué
Bon, je pense avoir trouvé la réponse : il faut encoder spécifiquement les entêtes (du moins les champs subject et from).
Le content-type et Content-Transfer-Encoding ne s'appliquent qu'au contenu du message, pas aux entêtes.

Il faut encoder en entourant le contenu avec des balises spécifiques, en fonction de l'encodage choisi.

Exemple pour un encodage en QuotedPrintable :
Code:
Subject: =?UTF-8?Q?Paiement_re=C3=A7u_de_la_part_de_xxxx0hotmail=2Ecom?=

Exemple de source PHP pour un encodage en base64 :
Code:
$subject=”=?UTF-8?B?”
.base64_encode($subject).”?=\n”;

Source ici : http://geoland.org/2007/12/utf8-ready-php-mail-function/

J'ai pas encore eu le temps de tester, mais ça sent plutôt la bonne piste je pense.
 
Discussions similaires
Haut