Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/08/2011, 19h27   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 52
Points : 11
Points : 11
Bonsoir tt le monde,

Après avoir effectué de longues recherches sur le sujet, il apparaît que :
1) ce pb d'encodage d'entêtes de mail est récurrent
2) je n'ai pas eu la réponse précise à mon pb
3) j'ai mal à la tête...

Donc voilà mon code (les champs dynamiques $_REQUEST étant issus de mon formulaire Contact) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
$destinataire="MOI <moi@monsite.com>" . ", ";
$headers = "From: ".$_REQUEST['Nom']." <".$_REQUEST['Mail'].">\n";
$headers .= "X?Sender: <moi@monsite.com>\n";
$headers .= "X?Mailer: PHP\n";
$headers .= "X?Priority: 1\n";
$headers .= "Return?Path: <moi@monsite.com>\n";
$headers .= "MIME-Version: 1.0\n"; 
$headers .= "Content?Type: text/html; charset=UTF-8\n";
$headers .= "Content-Transfer-Encoding: 8bit\n\n";
$sujet = "Message d'un internaute";
$corps.="Bonjour !\n\n";
$corps.="Voici le message d'un internaute, suite à sa visite sur www.monsite.com :\n\n";
$corps.="-----------------------------------\n";
$corps.="Intérêt : ".html_entity_decode($_REQUEST['Interet'])."\n";
$corps.="Le : ".$DATE." à ".$HEURE."\n";
$corps.="-----------------------------------\n";
$corps.="Nom : ".$_REQUEST['Nom']."\n";
$corps.="Prénom : ".$_REQUEST['Prenom']."\n";
$corps.="N° de téléphone : ".$_REQUEST['Telephone']."\n";
$corps.="Adresse Email : ".$_REQUEST['Mail']."\n"."\n";
$corps.="-----------------------------------\n";
$corps.="Nb de personnes : ".$_REQUEST['Nb_pers']."\n";
$corps.="-----------------------------------\n";
$corps.="\n\nCeci est une transmission automatique de message depuis le site web www.monsite.com. Vous pouvez utiliser la fonction RÉPONDRE de votre messagerie, pour répondre à votre visiteur.";
$corps.="\n\nBonne journée !";
 
/* Envoi courriel */
$transmission = mail($destinataire, $sujet, $corps, $headers);
/* Vérification envoi */
if (!$transmission) {
}
Donc, dans mon code, rien à redire, si ce n'est l'encodage dans l'entête ($headers = "From: ".$_REQUEST['Nom']." <".$_REQUEST['Mail'].">\n" :

En effet, mon $_REQUEST['Nom'] (qui peut avoir des caractères accentués), donne des caractères bizarres, mais pas partout : par exemple, dans Thunderbird, j'ai mes caractères accentués impec, mais avec la plupart des webmails, ce nom a des caractères "bizarres" avec des @>! et compagnie !... (tout en précisant que le corps (body) du msg est impec, mais c'est normal puisque j'ai déclaré l'UTF-8 dans le charset...)
...et je ne vous parle même pas du webmail Orange, où là y'a rien qui va : on a les mêmes bizarres caractères pour le FROM, et en plus des caractères avec points d'interrogation sur fond noir dans le corps (body) du msg... mais bon c'est pas le webmail orange la priorité, ils sont juste nuls à mon avis...!!??

Voilou... Avez-vous 1 retour d'expérience là-dessus ???

Merci @+
Marmotton76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 09h15   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 269
Points : 7 269
Bonjour,

Citation:
mais c'est normal puisque j'ai déclaré l'UTF-8 dans le charset...)
ça ne veut pas dire que ton fichier est encodé en UTF8. Ouvre le dans notepad++ et encode le en UTF-8.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 10h39   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 52
Points : 11
Points : 11
Oui oui c'est bon, j'utilise l'éditeur Geany et mon document est bien encodé en UTF-8
Merci

Citation:
Envoyé par andry.aime Voir le message
Bonjour,

ça ne veut pas dire que ton fichier est encodé en UTF8. Ouvre le dans notepad++ et encode le en UTF-8.

A+.
Marmotton76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 12h40   #4
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
tu devrais pas séparer les entêtes du mail avec \r\n au lieu de \n. A noter que le séparateur de ligne dépendant de la plateforme \r\n est beaucoup plus standard etpourquoi tu as les ?.

Tu peux tester avec celui-ci :
Code :
1
2
3
4
5
6
7
8
9
 
$headers = "From: ".$_REQUEST['Nom']." <".$_REQUEST['Mail'].">\r\n";
$headers .= "X-Sender: <moi@monsite.com>\r\n";
$headers .= "X-Mailer: PHP\r\n";
$headers .= "X-Priority: 1\r\n";
$headers .= "Return?Path: <moi@monsite.com>\r\n";
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2012, 13h00   #5
Invité de passage
 
Inscription : juin 2010
Messages : 2
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 2
Points : 1
Points : 1
Par défaut Même problème

j'ai le même soucis.

Mon mail est bien réceptionné chez certains FAI et il est réceptionné avec de droles de signes chez mon client (Manque de chance !)

Une question cependant : parfois dans mes recherches, il est conseillé d'abandonner le \r\n au profit du \n tout court .

mes headers :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
$headers  = "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=\"utf-8\"\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "X-Priority: 1\n";
$headers .= "From: \"monSite\"<no-reply@monSite.com>\n";
$headers .= "Reply-To: \n";
$headers .= "Cc:mail1.@mail.fr, <a href="mailto:mail2@mail.fr">mail2@mail.fr</a>\n";
$headers .= "Bcc:mail3@mail.fr\n";
//==========
$subject  = utf8_decode("xxxx vous félicite");

Questionnements :
Puisque j'utilise l'encodage utf-8, ais-je tout de même besoin de slacher mes apostrophes dans les headers ?

Si je n'applique pas utf8_decode dans le sujet celui ci est incorrect. Pourquoi puisque je suis en utf-8 sur mon code page ?

(Je code sous notepad , je suis bien en UTF-8 sans BOM.)
Merci de vos éclairages. J'aimerai en découdre.
Elsane est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h10.


 
 
 
 
Partenaires

Hébergement Web