lorik Posté 5 Août 2009 Posté 5 Août 2009 Bonjour, J'utilise la fonction mail pour envoyer par mail les contacts passés dans un formulaire. Pas de problème particulier, ça marche bien depuis des années Par contre, depuis quelques mois, sans que le script ait changé, les mails reçus ont de problème d'encodage : Les éàè et autres ne passent plus : Soit ils sont tout simplement supprimés, soit remplacés par des 'i'. Je vois vraiment pas la source du problème. j'ai essayé sans succès de passer un : $emetteur="from: ".$mail."\r\n Content-Type: text/html; charset='iso-8859-1'\r\n"; Pour essayer de 'forcer' un encodage. Rien à faire. A noter que les contenus sont bètes et mechants, pas d'image, quelque liens, aucune mise en forme (couleur, typo), aucun html, bref, du basique. Une idée ? Par avance merci.
jcaron Posté 5 Août 2009 Posté 5 Août 2009 Le retour du "i", ça faisait longtemps, on se croirait de retour au temps du Minitel :-) Le "i" c'est un "é" passé en 7 bits (i.e. le bit de poids fort a été remis à 0). Il y a quelqu'un sur le chemin qui n'aime pas le 8 bits. C'est pas super courant de nos jours, mais visiblement ça arrive encore. Plusieurs options à tenter: - essayer de forcer un Content-Transfer-Encoding: 8bit ou éventuellement binary - tout encoder en base64 ou en quoted-printable avec le Content-Transfer-Encoding qui va avec. Jacques.
lorik Posté 6 Août 2009 Auteur Posté 6 Août 2009 Bjr Jacques, et merci de ton aide j'ai tenté le codage en 64 : $corps=base64_encode($corps); $emetteur="from: ".$mail."\n";$emetteur .='Content-Transfer-Encoding: 64bit'."\n";mail("toto_AT_toto.fr", $sujet, $corps, $emetteur); avec un superbe résultat dans le mail reçu : Tm91dmVhdSBtZXNzYWdlIHNhaXNpIHN1ciBsZSBzaXRlIHBhciA6IApwculub20gZXQgbm9tIDogIGxq bG1ragoKIGUtbWFpbCA6IGxram1samxta2oKClTpbOlwaG9uZSA 6IAoKU29uIG1lc3NhZ2UgOiAKCiBhemVydHkgDQpk6WZpbml0aW9uIOAg6CDqCgogCgoKIGNhbXBhZ25 lPSAgLSAgCgogbW90X2Ns6T0gIAoKIHJlcXVldGU9ICAKCiB zaXRlPSAgCgogcmVmZXJlcj0gaHR0cDovL3d3dy5kcmVkZC5mci9jb250YWN0L2NvbnRhY3QucGhwIAo KIHBhZ2VzIHZ1ZXMgOiBodHRwOi8vd3d3LmRyZWRkLmZyL2 lwLnBocD9pcD05MC4zMC40LjIwNCZ0cmFja2JhY2s9bG9yaWsgCg== Donc la bonne nouvelle, c'est que l'encodage marche, la mauvaise, c'est que le decodage final n'a pas lair de se faire... bon, autre methode, le forcage 8 bits : $emetteur .='Content-Transfer-Encoding: 8bit'."\n"; Là, pas de changement, j'ai toujours mes 'i' présents... est ce qu'il y a un truc que je fais mal ?
lorik Posté 9 Août 2009 Auteur Posté 9 Août 2009 Bjr Jacques bon, même avec base64, le problème reste, les 'i' sont toujours présents. Dans la mesure ou les scripts n'avaient pas bougé, et ou ça marchait bien avant, est ce qu'il ne faut pas plutot regarder du coté serveur ? une mise à jour, par exemple ? Ce qui est sur, c'est que ça n'a rien à voir avec mon poste à moi, le problème est vu sur plusieurs postes.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant