Page 1 sur 1

Fonction mail() et caractères spéciaux.

Posté : 30 avr. 2007, 09:25
par Tom
Bonjour à tous ! :D


Pour mon site, j'ai décidé d'ajouter l'option "Recommander ce site à un(e) ami(e)". Pour l'envoi, j'utilise la fonction mail() de PHP.

Le seul problème est que lorsque le sujet/objet du message contient des caractères spéciaux, ceux-ci ne s'affichent pas ou mal lorsque le destinataire lit le mail reçu.
Par exemple, si le sujet/objet du mail est "Daphné vous invite à découvrir le site..." ; lorsque le destinataire reçoit le mail, le sujet/objet s'affiche comme cela : "Daphn vous invite dcouvrir le site...".

Savez-vous comment résoudre ce problème ?


Par avance, merci pour votre aide éventuelle. :wink:

Posté : 02 mai 2007, 09:00
par tom
Up.

Posté : 02 mai 2007, 09:04
par Cyrano
Modération :
Tom, les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est (au choix) :
- que ta question est mal formulée : reformule-la différemment ;
- que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
- que la réponse demandée exige un travail important que personne ne va faire à ta place ;
- que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Merci de prendre le temps de lire les règlements.

Posté : 02 mai 2007, 09:31
par raptor
effectue une recherche du coté de l'encodage du mail.

Concretement, il faut rajouter dans l'entête du mail un truc dans ce style :
$headers .="Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$headers .="Content-Transfer-Encoding: 8bit"; 
Edit: si le mail est au format texte bien sûr.

Posté : 02 mai 2007, 11:26
par Tom
Désolé pour le up, Cyrano. :oops:

raptor : Merci merci beaucoup pour ta réponse. :D J'ai déjà essayé de jouer avec l'encodage. Au tout début, j'en ai pas mis et les sujets des mails étaient lisibles sous Outlook Express mais pour sous ma messagerie Kerio. Si j'utilise utf-8 encode () , les sujets des mails sont lisibles sur Kerio (système de messagerie) mais pas sous Outlook Express.

En utilisant ce code :

Code : Tout sélectionner

$headers .="Content-Type: text/plain; charset=\"iso-8859-1\"\r\n"; $headers .="Content-Transfer-Encoding: 8bit";
les caractères accentués n'apparaissent toujours pas dans l'objet/sujet des mail (sous Kerio messagerie, mais sous Outlook Express, pas de problème)...