dldstyle Posté 4 Novembre 2008 Partager Posté 4 Novembre 2008 Je me suis converti depuis peu au charset en utf-8 que je trouve plus pratique dans mes pages. Je me heurte aujourd'hui à un problème sur les caractères accentués qui sont en hiéroglyphes dans le contenu des mails envoyés avec la fonction mail de PHP (ex : Céline Dupond). Comment pallier à ce problème ? Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dadou Posté 4 Novembre 2008 Partager Posté 4 Novembre 2008 Converti en iso 8859-1, pas mal de clients de messagerie gèrent mal l'utf-8, c'est le cas d'outlook notamment, ainsi que pas mal de webmail. Moi aussi, au départ quand j'ai découvert l'utf-8 j'ai voulu envoyer mes mails dans ce format, et j'ai eu quelques surprises. Lien vers le commentaire Partager sur d’autres sites More sharing options...
rdd Posté 4 Novembre 2008 Partager Posté 4 Novembre 2008 Salut, La fonction utf8_encode() est ton amie Si le corps de ton mail est dans une variable $body_mail, il te suffit de faire un utf8_encode($body_mail) et le tour est joue. Lien vers le commentaire Partager sur d’autres sites More sharing options...
dldstyle Posté 4 Novembre 2008 Auteur Partager Posté 4 Novembre 2008 Salut, Je pense que la fonction utf8_decode serait la mieux appropriée mais ce n'est pas le cas. J'ai tout de même testé le utf8_encode mais ça ne fait qu'empirer les choses Tu pensais à une autre possibilité Dadou ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dadou Posté 4 Novembre 2008 Partager Posté 4 Novembre 2008 utf8_decode est en effet la fonction à utiliser, mais encore faut il que le mail généré soit déclaré en iso 8859-1 dans ses entêtes Lien vers le commentaire Partager sur d’autres sites More sharing options...
rdd Posté 4 Novembre 2008 Partager Posté 4 Novembre 2008 Autant pour moi, en effet utf8_decode pour la fonction. Comme le dis Dadou, les headers du mail doivent etre en iso 8859-1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
dldstyle Posté 4 Novembre 2008 Auteur Partager Posté 4 Novembre 2008 (modifié) Il me semble que tout est bon mais pourtant... Peut être ai je le nez trop collé à mon écran ?! $sujet='Demande de contact depuis votre site';$headers = 'From: contact_AT_site.fr' . "\r\n";$headers .= 'Reply-To: ' .$email. "\r\n";$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";$message="Civilite : ".$civ."<br />Nom : ".$nom."<br />Message : ".nl2br($commentaire);mail(_EXP_MAIL_, $sujet, $message, $headers); Merci pour votre aide Modifié 4 Novembre 2008 par dldstyle Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dadou Posté 4 Novembre 2008 Partager Posté 4 Novembre 2008 Essaie comme ça : $sujet='Demande de contact depuis votre site';$headers = 'From: contact_AT_site.fr' . "\r\n";$headers .= 'Reply-To: ' .$email. "\r\n";$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";$message="Civilite : ".utf8-decode($civ)."<br />Nom : ".utf8-decode($nom)."<br />Message : ".nl2br(utf8-decode($commentaire));mail(_EXP_MAIL_, $sujet, $message, $headers); Lien vers le commentaire Partager sur d’autres sites More sharing options...
dldstyle Posté 4 Novembre 2008 Auteur Partager Posté 4 Novembre 2008 Merci de ton aide Dadou mais ça ne marche pas mieux (j'ai remplacé dans ton code utf8-decode par utf8_decode)... Lien vers le commentaire Partager sur d’autres sites More sharing options...
dldstyle Posté 4 Novembre 2008 Auteur Partager Posté 4 Novembre 2008 Après avoir trituré le code j'ai réussi à le faire fonctionner. Je pense que l'ordre du charset dans le header à son importance. Le code si cela peut aider d'autres personnes pour envoyer des emails avec la fonction mail de PHP depuis une page en UTF-8 : $sujet='Demande de contact depuis votre site'; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'From: '._EXP_MAIL_. "\r\n"; $headers .= 'Reply-To: ' .$email. "\r\n"; $headers .= 'Reply-To: ' .$email. "\r\n"; $message=" Civilite : ".$civ." Nom : ".utf8_decode($nom)." Tel. : ".$telephone." Email : ".$email." Ville : ".utf8_decode($ville)." Message : ".nl2br(utf8_decode($commentaire)); mail(_EXP_MAIL_, $sujet, $message, $headers); Merci pour l'aide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
thankol Posté 13 Février 2009 Partager Posté 13 Février 2009 Salut, j'ai le même problème ... ... bon je continus à chercher voir si comprend pourquoi ! Thankol Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dadou Posté 13 Février 2009 Partager Posté 13 Février 2009 Ouvre un autre post et met plus de détails si tu veux que l'on t'aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
jemords Posté 25 Février 2009 Partager Posté 25 Février 2009 Pour ma part, je laisse tout en utf-8 et j'envois un email codé en utf-8 également sans url_decode... regarde ton header: $headers .= 'Content-type: text/plain; charset=utf-8' ."\n"; Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant