PHP apparation de ! avec la fonction mail()

alecol -  
 jean -
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   Statut Membre Dernière intervention   171
 
Salut,

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

A+

Gaerebut
0
alecol
 
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   Statut Contributeur Dernière intervention   1 462
 
salut,

tu as essayé d'enlever cette ligne

$entete .='Content-Transfer-Encoding: 8bit'."\n";
0
alecol
 
Non, ce n'est toujours pas ça, mais merci quand même.
0
gaerebut Messages postés 1017 Date d'inscription   Statut Membre Dernière intervention   171
 
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
alecol
 
C'est pire, je vous tout monde code HTML maintenant. ;-)
0
toto
 
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
alecol
 
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   Statut Membre Dernière intervention   6
 
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
toto
 
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
jean
 
Bonjour j'ai le même problème, avez vous résolu la question ??
0
jean
 
Ce problème est vraiment bloquant, si quelqu'un a la solution merci de m'en dire plus.
0
toto
 
As-tu un exemple de message avec ces fameux ! ? Pour essayer de deviner quand ils apparaissent.
0
jean
 
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   Statut Membre Dernière intervention   171
 
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
jean
 
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
toto
 
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
jean
 
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