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

Yoan Messages postés 11795 Date d'inscription   Statut Modérateur Dernière intervention   -  
 M'sieur Toph' -
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 !
A voir également:

4 réponses

manu
 
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
10
Zigloo21 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   1
 
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.
1
Yoan Messages postés 11795 Date d'inscription   Statut Modérateur Dernière intervention   2 331
 
Oui, .... j'envoie des messages en HTML avec http://phpmailer.sourceforge.net/ PHPMailer. Pas encore de solution pour les messages textes. :-/
1
M'sieur Toph'
 
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.

++
1