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

Tom
Invité n'ayant pas de compte PHPfrance

30 avr. 2007, 09:25

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:

tom
Invité n'ayant pas de compte PHPfrance

02 mai 2007, 09:00

Up.

Mammouth du PHP | 19672 Messages

02 mai 2007, 09:04

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 543 Messages

02 mai 2007, 09:31

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.

Tom
Invité n'ayant pas de compte PHPfrance

02 mai 2007, 11:26

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)...