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

Fermé
Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 - 26 juil. 2007 à 01:09
 M'sieur Toph' - 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 !
A voir également:

4 réponses

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 mercredi 26 septembre 2007 Statut Membre Dernière intervention 28 juillet 2008 1
7 nov. 2007 à 12:49
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 mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 327
7 nov. 2007 à 16:44
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'
10 oct. 2009 à 17:11
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