PHP, fonction mail(), Hotmail et UTF-8
Yoan
Messages postés
11795
Date d'inscription
Statut
Modérateur
Dernière intervention
-
M'sieur Toph' -
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 !) :
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 !
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:
- PHP, fonction mail(), Hotmail et UTF-8
- Clé windows 8 - Guide
- Fonction si et - Guide
- Hotmail - Guide
- Créer une adresse mail hotmail - Guide
- Mixcraft 8 - Télécharger - Création musicale
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
$entete .='Content-Type: text/plain; charset="UTF-8"\r\n';
cordialement
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.
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.
Oui, .... j'envoie des messages en HTML avec http://phpmailer.sourceforge.net/ PHPMailer. Pas encore de solution pour les messages textes. :-/
Yop ...
Moi, j'ai eu aussi un souci avec hotmail, mais j'ai utilisé le header suivant dans l'envoi du mail :
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.
++
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.
++