PHP apparation de ! avec la fonction mail()

Fermé
alecol - 10 févr. 2009 à 19:16
 jean - 17 avril 2009 à 13:53
Bonjour,
Je me trouve devant un problème étrange auquel je ne trouve pas de réponses sur le net...
Dans un site e-commerce, j'envoie un mail au client pour confirmer la réception de la commande de la part de l'administrateur. Et dans ce mail apparaît des points d'exclamations accompagnés d'un espace (! ) . un ou deux, pas plus et à des endroits aléatoires du texte.
Quelqu'un aurait-il une idée de la source du problème?
Merci.
A voir également:

13 réponses

gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 171
10 févr. 2009 à 20:36
Salut,

vérifie bien l'encoement de ton mail.
C'est dans la partie Header du mail

A+

Gaerebut
0
Je ne vois pas ce que je dois chercher.
Voici mon entete:
$entete ='From: mon magasin<info@monmagasin.be>'."\n";
$entete .='MIME-Version: 1.0'."\n";
$entete .='Content-Type:text/html; charset=iso-8859-1'."\n";
$entete .='Content-Transfer-Encoding: 8bit'."\n";

Sinon, je n'ai pas mis de balise <head></head> ni de <body></body> d'ailleurs, il paraît que ça pose problème dans certaines boites de réception.
0
Ricky38 Messages postés 4349 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 459
10 févr. 2009 à 22:28
salut,

tu as essayé d'enlever cette ligne

$entete .='Content-Transfer-Encoding: 8bit'."\n";
0
Non, ce n'est toujours pas ça, mais merci quand même.
0
gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 171
10 févr. 2009 à 23:27
RE,

essaye ça :

$headers = 'MIME-Version: 1.0' . '\r\n';
$headers .= 'Content-type: text/html; charset=UTF-8' . '\r\n'; 
$headers .= 'From: mon magasin<info@monmagasin.be>' . '\r\n';


A+

Gaerebut
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
C'est pire, je vous tout monde code HTML maintenant. ;-)
0
Bonjour

Il n'y a aucune raision pour qu'un problème d'encodage conduise à ce genre de résultat. D'ailleurs, aucune des modifications qui t'a été proposée n'est accompagnée de la moindre justification.
Est-il possible d'avoir une copie d'un ou deux de ces messages ?
T'est-il possible d'en envoyer le même à plusieurs destinataires à la fois, pour voir s'ils ont les "! " aux mêmes endroits ou à des endroits différents ?
0
Je peux prendre ton adresse mail et te l'envoyer 2 fois si ça ne te dérange pas.
Ils apparaissent bien à des endroits aléatoires, et dans le texte même pas dans le code HTML, bien qu'il y ait un fait étrange, j'ai des caractères spéciaux écris en HTML ( € ). Le "! ", quand c'est le cas, se pose au milieu du caractère et je me retrouve donc avec, par exemple: "&eu! ro;"
0
alecol Messages postés 27 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 11 février 2009 6
11 févr. 2009 à 16:50
Un petit Up parce que c'est un petit problème mais qui doit être réglé rapidement (aujourd'hui) et j'avoue sécher complètement...
0
Désolé, j'étais sur la route.
Je ne tiens pas à donner mon adresse email sur un forum.
Par contre tu disais que le problème apparaissait aléatoirement, maintenant tu dis que c'est lié aux caractères spéciaux.
Tu parles également du fait que ça apparaît dans le texte même pas dans le code HTML et quelque mots plus loin, que ça apparaît au milieu des caractères spéciaux écrits en HTML... Je ne te suis pas.

Un copier-coller du message, en masquant les informations confidentielles bien sûr, ça n'est pas possible ?
0
Bonjour j'ai le même problème, avez vous résolu la question ??
0
Ce problème est vraiment bloquant, si quelqu'un a la solution merci de m'en dire plus.
0
As-tu un exemple de message avec ces fameux ! ? Pour essayer de deviner quand ils apparaissent.
0
Merci de ta réponse toto, mais en fait je viens de trouver une solution pour palier à ce problème :
en fait il suffit d' "indenter" le code HTML du mail, si toutefois il s'agit d'un mail au format HTML;
Je m'explique en fait les mails que je générais avec mon code apparaissaient sous cette forme (lorsque j'affichais la source du mail avec Outlook) :
<div>Mr dupont, Bonjour,</div><div>Je vous informe que votre compte à expirer, </div><div>nous vous conseillons</div> etc...

je l'ai modifié pour qu'il apparaisse sous cette forme

<div>Mr dupont, Bonjour,</div>
<div>Je vous informe que votre compte à expirer, </div>
<div>nous vous conseillons</div>

Résultat => le problème a disparu, je ne sais pas si ça pourra aider quelqu'un, en tout cas ça fonctionne chez moi !
Bonne chance à tous
0
gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 171
16 avril 2009 à 18:23
Salut,

enregistre ton document en ANSI et non en UTF-8 ou autre format.
Par exemple sous notepad++, va dans Format puis Encoder en ANSI
Je pense qu'ensuite, ton problème sera réglé !

MAIS, ça peut aussi venir de l'entête/header de ton mail.
Perso, je les mets comme ceci :

$headers = 'MIME-Version: 1.0' . '\r\n'; // Version de MIME et type du message
$headers .= 'Content-type: text/html; charset=UTF-8' . '\r\n'; // Permet de faire un mail de forme HTML


Après ça, je peux mettre mon mail au format HTML mais je dois penser à mettre les accent et autre caractère spéciaux au format unicode (é remplacé par é par exemple)

A+

Gaerebut
0
EN fait côté encodage j'avais essayer pas mal de truc (UTF-8, ANSI, sous Win sou UNIX ect...)donc je pense pas que ça venait de la...
Pour l'entête du mail j'utilise la classe phpMailer, j'ai mis ISO-8859-1.
Et enfin concernant les caractère spéciaux j'ai également tester la fonction htmlentities et mm htmlspecialchars.
=> rien n'a résolu le problème.

De mon côté aussi bizarre que cela puisse paraitre il n'y a que le retour à la ligne des balises html (avec un \n) qui à résolu le problème.
0
Peut-être pas si bizarre que ça. J'ai le vague souvenir que le protocole SMTP limite la longueur des lignes à 1000 caractères environ. Ton ! n'intervenait-il pas tous les 1000 caractères environ ?
0
Je n'est pas compté mais ça me semble tout à fait possible, de plus le problème est commun à tous les comptes messagerie que j'ai eu l'occasion de tester.
=> Ca ne vient donc probablement pas d'une mauvaise interprétation du code, le problème apparait bel et bien lors de l'envoi du mail.

Merci pour l'info !
0