Rechercher : dans
Par :

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

Dernière réponse le 10 oct 2009 à 17:11:15 Yoan, le 26 jui 2007 à 01:09:07 
 Signaler ce message aux modérateurs

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 ! L'urgent est fait, l'impossible est en cours,
Pour les miracles, prévoir un délai ...
Configuration: Linux
Firefox 2.0.0.5

Meilleures réponses pour « PHP, fonction mail(), Hotmail et UTF 8 » dans :
[PHP] Fonction mail() Voir La fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez...
PHP - Mail et fonctions réseau VoirPHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est...

1

Zigloo21, le 7 nov 2007 à 12:49:29
  • +2

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.

Répondre à Zigloo21

2

Yoan, le 7 nov 2007 à 16:44:28
  • +2

Oui, .... j'envoie des messages en HTML avec http://phpmailer.sourceforge.net/ PHPMailer. Pas encore de solution pour les messages textes. :-/
L'urgent est fait, l'impossible est en cours,
Pour les miracles, prévoir un délai ...

Répondre à Yoan

3

manu, le 11 jan 2008 à 06:00:26
  • +2

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

Répondre à manu

4

 M'sieur Toph', le 10 oct 2009 à 17:11:15

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.

++

Répondre à M'sieur Toph'
Collection CommentÇaMarche.net