mail et encodage

Bonjour

Je me replonge un peu dans spip après une période d'abstinence.

J'ai un petit souci avec ma page contact qui m'envoie des mails avec des hiéroglyphes :

test accents éèêàâîôû

me retourne ça

test accents éèêà âîôû

Mon site est en utf-8

Le script de la page contact a été pompé sur le site des médecins maîtres-toiles.
Je peux le joindre si besoin mais c'est un peu long

Quelqu'un aurait-il une piste ?

Merci

Jean-Christophe Villeneuve a écrit :

Mike LECOMTE a écrit :

Jean-Christophe Villeneuve a écrit :

Bonjour

Je me replonge un peu dans spip après une période d'abstinence.

J'ai un petit souci avec ma page contact qui m'envoie des mails avec des hiéroglyphes :

test accents éèêàâîôû

me retourne ça

test accents éèêà âîôû

Mon site est en utf-8

Le script de la page contact a été pompé sur le site des médecins maîtres-toiles.
Je peux le joindre si besoin mais c'est un peu long

Quelqu'un aurait-il une piste ?

Merci

Bonjour !

Alors un pbm d'encodage lors de l'envoi de mail, ça vient soit de la façon dont ta page est enregistrée (dans dreamweaver, modifier --> propriété de la page --> Titre / Codage), soit des headers utilisés pour la fonction mail() en php (--> une petit recherche sur Google et hop voici un exemple d'envoi avec spécification des headers : PHP - Envoyer un mail).
En gros si tu obtiens des symboles bizzare, c'est parce que ton mail contient des accents en utf-8 alors que quand tu affiches le header de ton mail (sous thunderbird ouvres ton mail puis Affichage --> entêtes --> complets, et recherche la ligne "Content type"...
Là vu tes symptomes elle doit surement être
Content type: text/plain; charset="iso-8859-1" alors qu'elle devrait être
Content type: text/plain; charset="utf-8"

ok
Merci de ta réponse
Je n'utilise pas dream mais juste PSPad et voilà la ligne que j'ai :
Content type: TEXT/PLAIN
et c'est tout !
Une solution ?
Dois-je donc spécifier mon header dans le code ?

Effectivement, si ton encodage n'est pas précisé dans le header de ton mail quand tu le reçois, il prend sans doute celui par défaut à saoivr iso 8891.
En précisant donc dans le code l'encodage à utiliser, ça devrait résoudre ton pbm.

En espérant t'avoir dépanné ^^, Cordialement

Mike

Mike LECOMTE a écrit :

Jean-Christophe Villeneuve a écrit :

Mike LECOMTE a écrit :

Jean-Christophe Villeneuve a écrit :

Bonjour

Je me replonge un peu dans spip après une période d'abstinence.

J'ai un petit souci avec ma page contact qui m'envoie des mails avec des hiéroglyphes :

test accents éèêàâîôû

me retourne ça

test accents éèêà âîôû

Mon site est en utf-8

Le script de la page contact a été pompé sur le site des médecins maîtres-toiles.
Je peux le joindre si besoin mais c'est un peu long

Quelqu'un aurait-il une piste ?

Merci

Bonjour !

Alors un pbm d'encodage lors de l'envoi de mail, ça vient soit de la façon dont ta page est enregistrée (dans dreamweaver, modifier --> propriété de la page --> Titre / Codage), soit des headers utilisés pour la fonction mail() en php (--> une petit recherche sur Google et hop voici un exemple d'envoi avec spécification des headers : PHP - Envoyer un mail).
En gros si tu obtiens des symboles bizzare, c'est parce que ton mail contient des accents en utf-8 alors que quand tu affiches le header de ton mail (sous thunderbird ouvres ton mail puis Affichage --> entêtes --> complets, et recherche la ligne "Content type"...
Là vu tes symptomes elle doit surement être
Content type: text/plain; charset="iso-8859-1" alors qu'elle devrait être
Content type: text/plain; charset="utf-8"

ok
Merci de ta réponse
Je n'utilise pas dream mais juste PSPad et voilà la ligne que j'ai :
Content type: TEXT/PLAIN
et c'est tout !
Une solution ?
Dois-je donc spécifier mon header dans le code ?

Effectivement, si ton encodage n'est pas précisé dans le header de ton mail quand tu le reçois, il prend sans doute celui par défaut à saoivr iso 8891.
En précisant donc dans le code l'encodage à utiliser, ça devrait résoudre ton pbm.

En espérant t'avoir dépanné ^^, Cordialement

Mike

Bon j'ai regardé ton lien et j'ai modifié ainsi

    mail($destinataire,$titre,$message,"From: $vEmail") ;

est devenu

      $headers ='Content-Type: text/plain; charset="utf-8"';
    mail($destinataire,$titre,$message,"From: $vEmail",$headers) ;

mais rien n'a changé.
Un problème de syntaxe ? Autre chose ?

Mike LECOMTE a écrit :

Jean-Christophe Villeneuve a écrit :

Mike LECOMTE a écrit :

Jean-Christophe Villeneuve a écrit :

Bonjour

Je me replonge un peu dans spip après une période d’abstinence.

J’ai un petit souci avec ma page contact qui m’envoie des mails avec des hiéroglyphes :

test accents éèêàâîôû

me retourne ça

test accents éèêà âîôû

Mon site est en utf-8

Le script de la page contact a été pompé sur le site des médecins maîtres-toiles.
Je peux le joindre si besoin mais c’est un peu long

Quelqu’un aurait-il une piste ?

Merci

Bonjour !

Alors un pbm d’encodage lors de l’envoi de mail, ça vient soit de la façon dont ta page est enregistrée (dans dreamweaver, modifier → propriété de la page → Titre / Codage), soit des headers utilisés pour la fonction mail() en php (–> une petit recherche sur Google et hop voici un exemple d’envoi avec spécification des headers : ). En gros si tu obtiens des symboles bizzare, c’est parce que ton mail contient des accents en utf-8 alors que quand tu affiches le header de ton mail (sous thunderbird ouvres ton mail puis Affichage → entêtes → complets, et recherche la ligne « Content type »… Là vu tes symptomes elle doit surement être Content type: text/plain; charset=« iso-8859-1 » alors qu’elle devrait être Content type: text/plain; charset=« utf-8 »

ok
Merci de ta réponse
Je n’utilise pas dream mais juste PSPad et voilà la ligne que j’ai :
Content type: TEXT/PLAIN
et c’est tout !
Une solution ?
Dois-je donc spécifier mon header dans le code ?

Effectivement, si ton encodage n’est pas précisé dans le header de ton mail quand tu le reçois, il prend sans doute celui par défaut à saoivr iso 8891.
En précisant donc dans le code l’encodage à utiliser, ça devrait résoudre ton pbm.

En espérant t’avoir dépanné ^^, Cordialement

Mike

Je pense que ton appel de la fonction n’est pas bon, en effet le From; doit se trouver dans le header, toi tu le passes comme un paramètre de plus à la fonction, en résumé, vu comment tu as fait ton appel le from est pris, mais pas $headers, donc comme dit dans l’exemple fait
// PREPARATION DES HEADERS
$headers ='From: "nom"'."\n";
$headers .='Reply-To: '."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
//ENVOI DU MAIL
mail('', 'Sujet', 'Message de test', $headers)

Mike LECOMTE a écrit :

Mike LECOMTE a écrit :

Jean-Christophe Villeneuve a écrit :

Mike LECOMTE a écrit :

Jean-Christophe Villeneuve a écrit :

Bonjour

Je me replonge un peu dans spip après une période d’abstinence.

J’ai un petit souci avec ma page contact qui m’envoie des mails avec des hiéroglyphes :

test accents éèêàâîôû

me retourne ça

test accents éèêà âîôû

Mon site est en utf-8

Le script de la page contact a été pompé sur le site des médecins maîtres-toiles.
Je peux le joindre si besoin mais c’est un peu long

Quelqu’un aurait-il une piste ?

Merci

Bonjour !

Alors un pbm d’encodage lors de l’envoi de mail, ça vient soit de la façon dont ta page est enregistrée (dans dreamweaver, modifier → propriété de la page → Titre / Codage), soit des headers utilisés pour la fonction mail() en php (–> une petit recherche sur Google et hop voici un exemple d’envoi avec spécification des headers : ). En gros si tu obtiens des symboles bizzare, c’est parce que ton mail contient des accents en utf-8 alors que quand tu affiches le header de ton mail (sous thunderbird ouvres ton mail puis Affichage → entêtes → complets, et recherche la ligne « Content type »… Là vu tes symptomes elle doit surement être Content type: text/plain; charset=« iso-8859-1 » alors qu’elle devrait être Content type: text/plain; charset=« utf-8 »

ok
Merci de ta réponse
Je n’utilise pas dream mais juste PSPad et voilà la ligne que j’ai :
Content type: TEXT/PLAIN
et c’est tout !
Une solution ?
Dois-je donc spécifier mon header dans le code ?

Effectivement, si ton encodage n’est pas précisé dans le header de ton mail quand tu le reçois, il prend sans doute celui par défaut à saoivr iso 8891.
En précisant donc dans le code l’encodage à utiliser, ça devrait résoudre ton pbm.

En espérant t’avoir dépanné ^^, Cordialement

Mike

Je pense que ton appel de la fonction n’est pas bon, en effet le From; doit se trouver dans le header, toi tu le passes comme un paramètre de plus à la fonction, en résumé, vu comment tu as fait ton appel le from est pris, mais pas $headers, donc comme dit dans l’exemple fait
// PREPARATION DES HEADERS
$headers ='From: "nom"'."\n";
$headers .='Reply-To: '."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
//ENVOI DU MAIL
mail('', 'Sujet', 'Message de test', $headers)

Super, j’y suis presque
Me reste plus qu’à récupérer l’adresse de l’auteur du message stockèe dans la variable $vEmail .
Si je fais ça

$headers =‹ From: <$vEmail> ›.« \n »;
$headers .=‹ Content-Type: text/plain; charset=« iso-8859-1 » ›.« \n »;
$headers .=‹ Content-Transfer-Encoding: 8bit ›;
mail($destinataire,$titre,$message,$headers) ;

J’obtiens pour auteur $vEmail@fai_hebergeur.fr

Alors, docteur ?

Jean-Christophe Villeneuve a écrit :

Mike LECOMTE a écrit :

Mike LECOMTE a écrit :

Jean-Christophe Villeneuve a écrit :

Mike LECOMTE a écrit :

Jean-Christophe Villeneuve a écrit :

Bonjour

Je me replonge un peu dans spip après une période d’abstinence.

J’ai un petit souci avec ma page contact qui m’envoie des mails avec des hiéroglyphes :

test accents éèêàâîôû

me retourne ça

test accents éèêà âîôû

Mon site est en utf-8

Le script de la page contact a été pompé sur le site des médecins maîtres-toiles.
Je peux le joindre si besoin mais c’est un peu long

Quelqu’un aurait-il une piste ?

Merci

Bonjour !

Alors un pbm d’encodage lors de l’envoi de mail, ça vient soit de la façon dont ta page est enregistrée (dans dreamweaver, modifier → propriété de la page → Titre / Codage), soit des headers utilisés pour la fonction mail() en php (–> une petit recherche sur Google et hop voici un exemple d’envoi avec spécification des headers : ). En gros si tu obtiens des symboles bizzare, c’est parce que ton mail contient des accents en utf-8 alors que quand tu affiches le header de ton mail (sous thunderbird ouvres ton mail puis Affichage → entêtes → complets, et recherche la ligne « Content type »… Là vu tes symptomes elle doit surement être Content type: text/plain; charset=« iso-8859-1 » alors qu’elle devrait être Content type: text/plain; charset=« utf-8 »

ok
Merci de ta réponse
Je n’utilise pas dream mais juste PSPad et voilà la ligne que j’ai :
Content type: TEXT/PLAIN
et c’est tout !
Une solution ?
Dois-je donc spécifier mon header dans le code ?

Effectivement, si ton encodage n’est pas précisé dans le header de ton mail quand tu le reçois, il prend sans doute celui par défaut à saoivr iso 8891.
En précisant donc dans le code l’encodage à utiliser, ça devrait résoudre ton pbm.

En espérant t’avoir dépanné ^^, Cordialement

Mike

Je pense que ton appel de la fonction n’est pas bon, en effet le From; doit se trouver dans le header, toi tu le passes comme un paramètre de plus à la fonction, en résumé, vu comment tu as fait ton appel le from est pris, mais pas $headers, donc comme dit dans l’exemple fait
// PREPARATION DES HEADERS
$headers ='From: "nom"'."\n";
$headers .='Reply-To: '."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
//ENVOI DU MAIL
mail('', 'Sujet', 'Message de test', $headers)

Super, j’y suis presque
Me reste plus qu’à récupérer l’adresse de l’auteur du message stockèe dans la variable $vEmail .
Si je fais ça

$headers =‹ From: <$vEmail> ›.« \n »;
$headers .=‹ Content-Type: text/plain; charset=« iso-8859-1 » ›.« \n »;
$headers .=‹ Content-Transfer-Encoding: 8bit ›;
mail($destinataire,$titre,$message,$headers) ;

J’obtiens pour auteur $vEmail@fai_hebergeur.fr

Alors, docteur ?

Ton problème est que ta variable $vEmail est placée entre des ’ et donc n’est pas interprétée.
tu pourrais faire ça par exemple et ça marchera très bien :
$headers =‹ From: < ›;
$headers .= $vEmail.;
$headers .=‹ > ›.« \n »;
$headers .=‹ Content-Type: text/plain; charset=« iso-8859-1 » ›.« \n »;
$headers .=‹ Content-Transfer-Encoding: 8bit ›;

Toutefois, il y amoyen de dire la même chose , mais en une seule ligne :
$headers =‹ From: < ›.$vEmail.‹ > ›.« \n »;
$headers .=‹ Content-Type: text/plain; charset=« iso-8859-1 » ›.« \n »;
$headers .=‹ Content-Transfer-Encoding: 8bit ›;
mail($destinataire,$titre,$message,$headers) ;

Maintenant, n’ayant pas tou ton code sous les yeux, si $vEmail tu le récupère en post , il te faudra sans doute au lieu d’appeler $vEmail. appeler $_POST[‹ vEmail ›]

Allez , on va y arriver ^^, courage

Cordialement

Mike

Un problème de syntaxe ? Autre chose ?

Dans spip-listes on (Cerdic en fait) a du mettre en option la conversion des mail utf-8 en ISO car certains vieux clients mail (et meme des récents nuls) ne lisent pas l'utf-8 (je ne dis pas lesquels pour ne pas etre indécent mais bon c'est un peu la honte pour eux).

Donc peut etre que ton spip fait tout bien comme il faut, mais que ton client mail est le coupable.

BoOz

BoOz a écrit :

Un problème de syntaxe ? Autre chose ?

Dans spip-listes on (Cerdic en fait) a du mettre en option la conversion des mail utf-8 en ISO car certains vieux clients mail (et meme des récents nuls) ne lisent pas l'utf-8 (je ne dis pas lesquels pour ne pas etre indécent mais bon c'est un peu la honte pour eux).

Donc peut etre que ton spip fait tout bien comme il faut, mais que ton client mail est le coupable.

BoOz

oui j'y avais pensé mais j'ai été lire un mail de test directement sur ma boîte mail et j'avais déjà le souci.
De plus j'utilise thunderbird qui n'est pas un "vieux client mail" :wink:

Merci de l'idée néanmoins

Mike LECOMTE a écrit :

Jean-Christophe Villeneuve a écrit :

Mike LECOMTE a écrit :

Mike LECOMTE a écrit :

Jean-Christophe Villeneuve a écrit :

Mike LECOMTE a écrit :

Jean-Christophe Villeneuve a écrit :

Bonjour

Je me replonge un peu dans spip après une période d’abstinence.

J’ai un petit souci avec ma page contact qui m’envoie des mails avec des hiéroglyphes :

test accents éèêàâîôû

me retourne ça

test accents éèêà âîôû

Mon site est en utf-8

Le script de la page contact a été pompé sur le site des médecins maîtres-toiles.
Je peux le joindre si besoin mais c’est un peu long

Quelqu’un aurait-il une piste ?

Merci

Bonjour !

Alors un pbm d’encodage lors de l’envoi de mail, ça vient soit de la façon dont ta page est enregistrée (dans dreamweaver, modifier → propriété de la page → Titre / Codage), soit des headers utilisés pour la fonction mail() en php (–> une petit recherche sur Google et hop voici un exemple d’envoi avec spécification des headers : ). En gros si tu obtiens des symboles bizzare, c’est parce que ton mail contient des accents en utf-8 alors que quand tu affiches le header de ton mail (sous thunderbird ouvres ton mail puis Affichage → entêtes → complets, et recherche la ligne « Content type »… Là vu tes symptomes elle doit surement être Content type: text/plain; charset=« iso-8859-1 » alors qu’elle devrait être Content type: text/plain; charset=« utf-8 »

ok
Merci de ta réponse
Je n’utilise pas dream mais juste PSPad et voilà la ligne que j’ai :
Content type: TEXT/PLAIN
et c’est tout !
Une solution ?
Dois-je donc spécifier mon header dans le code ?

Effectivement, si ton encodage n’est pas précisé dans le header de ton mail quand tu le reçois, il prend sans doute celui par défaut à saoivr iso 8891.
En précisant donc dans le code l’encodage à utiliser, ça devrait résoudre ton pbm.

En espérant t’avoir dépanné ^^, Cordialement

Mike

Je pense que ton appel de la fonction n’est pas bon, en effet le From; doit se trouver dans le header, toi tu le passes comme un paramètre de plus à la fonction, en résumé, vu comment tu as fait ton appel le from est pris, mais pas $headers, donc comme dit dans l’exemple fait
// PREPARATION DES HEADERS
$headers ='From: "nom"'."\n";
$headers .='Reply-To: '."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
//ENVOI DU MAIL
mail('', 'Sujet', 'Message de test', $headers)

Super, j’y suis presque
Me reste plus qu’à récupérer l’adresse de l’auteur du message stockèe dans la variable $vEmail .
Si je fais ça

$headers =‹ From: <$vEmail> ›.« \n »;
$headers .=‹ Content-Type: text/plain; charset=« iso-8859-1 » ›.« \n »;
$headers .=‹ Content-Transfer-Encoding: 8bit ›;
mail($destinataire,$titre,$message,$headers) ;

J’obtiens pour auteur $vEmail@fai_hebergeur.fr

Alors, docteur ?

Ton problème est que ta variable $vEmail est placée entre des ’ et donc n’est pas interprétée.
tu pourrais faire ça par exemple et ça marchera très bien :
$headers =‹ From: < ›;
$headers .= $vEmail.;
$headers .=‹ > ›.« \n »;
$headers .=‹ Content-Type: text/plain; charset=« iso-8859-1 » ›.« \n »;
$headers .=‹ Content-Transfer-Encoding: 8bit ›;

Toutefois, il y amoyen de dire la même chose , mais en une seule ligne :
$headers =‹ From: < ›.$vEmail.‹ > ›.« \n »;
$headers .=‹ Content-Type: text/plain; charset=« iso-8859-1 » ›.« \n »;
$headers .=‹ Content-Transfer-Encoding: 8bit ›;
mail($destinataire,$titre,$message,$headers) ;

Maintenant, n’ayant pas tou ton code sous les yeux, si $vEmail tu le récupère en post , il te faudra sans doute au lieu d’appeler $vEmail. appeler $_POST[‹ vEmail ›]

Allez , on va y arriver ^^, courage

Cordialement

Mike

C’est parfait, tout comme je veux, nickel !
Merci beaucoup de ton aide Mike.
Allez je t’embrasse