Posez votre question Signaler

PHP, fonction mail(), Hotmail et UTF-8

Yoan 11792Messages postés 1 février 2005Date d'inscription ModérateurStatut 10 février 2012Dernière intervention - Dernière réponse le 10 oct. 2009 à 17:11
Bonjour,
J'ai un script PHP qui utilise la fonction mail. Le mail est envoyé en texte (text/plain), et il contient des accents français.
Naturellement Microsoft fait encore des siennes : Alors que toutes les Webmails m'affichent à merveille le mail, Hotmail :
1) Insère des retours-chariot là où ça lui pète. Du coup le mail n'occupe même pas la moitié de l'écran et les phrases reviennent à la ligne n'importe comment, c'est désagréable à lire.
2) N'affiche pas correctement les accents, c'est encore plus désagréable à lire.
Concernant les accents, j'ai bien l'impression qu'Hotmail a jugé bon de bannir l'UTF-8 ou l'iso-8859-15, rien n'y fait. J'ai regardé deux ou trois mails qui sont envoyés par Microsoft ou Ebay, visiblement tout est envoyé en iso-8859-1. Mais ça me fait mettre n'importe-quoi dans tous les champs, je n'ai pas vraiment envie. Néanmoins je crois que je n'ai pas le choix, il ne semble qu'il y ait que l'iso-8859-1 qui passe chez Hotmail, me tromperais-je ?
Ceci ne marche pas par exemple (Enfin, ça marche avec les autres Webmails, mais pas avec Hotmail, bien sûr !) :
$header = "From: $adresse\r\n".
"MIME-Version: 1.0\r\n".
"Content-Type: text/plain; charset=UTF-8\r\n".
"Content-Transfer-Encoding: 8bit\r\n\r\n";
......
mail($ad,$msg,$header);
Je reçois ça :
message envoyé à partir de
Il y aurait-il une solution pour y remédier, à part passer à l'iso-8859-1 ?
(Ca implique quand-même de modifier des trucs de partout : ?ISO-8859-1? dans tous les champs plus tous les caractères à modifier, à moins que j'enregistre en iso-8859-1, m'enfin je préfèrerais éviter :-/)
Merci !
Lire la suite 

PHP, fonction mail(), Hotmail et UTF-8 »

4 réponses
Réponse
+5
moins plus
ton prb pour la version avec le UTF-8 c'est ke tu oublie les ""
$entete .='Content-Type: text/plain; charset="UTF-8"\r\n';
cordialement
Ajouter un commentaire
Réponse
+1
moins plus
Salut,

Ton message date déjà de quelques mois mais, ayant le même problème actuellement, j'aurais bien voulu savoir si tu avais résolu la chose !

Merci.
Ajouter un commentaire
Réponse
+1
moins plus
Oui, .... j'envoie des messages en HTML avec http://phpmailer.sourceforge.net/ PHPMailer. Pas encore de solution pour les messages textes. :-/
Ajouter un commentaire
Réponse
+1
moins plus
Yop ...

Moi, j'ai eu aussi un souci avec hotmail, mais j'ai utilisé le header suivant dans l'envoi du mail :
'Content-type: text/html; charset=UTF-8'

Et ça marche très bien avec hotmail (à condition que tes pages soient en utf-8 bien sûr, sinon forcément, ça risque de pas marché...

Pour le problème de retour chariot, moi, j'utilise un wordwrap (fonction php) de 70 pour formater le corps du mail... et je n'observe aucun problème sur hotmail.

++
Ajouter un commentaire
Ce document intitulé « PHP, fonction mail(), Hotmail et UTF-8 » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook