Aller au contenu

pb d'encodage de mails


lorik

Sujets conseillés

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.

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...