PHP, mail(), et caractères spéciaux!

phédra60 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -  
 petite fée -
Bonjour,
Voilà, j'ai un problème avec la fonction mail() en PHP, et les caractères spéciaux intervenant dans le corps du mail. En effet, lorsque le destinataire reçoit le message, à la place des caractères spéciaux, il voit des '?'. Comment les afficher correctement sans envoyer des mails au format HTML?
Vous remerciant par avance de votre aide,
Vivien.
A voir également:

13 réponses

phédra60 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   17
 
Ca n'a pas marché! Voici mon script de test:
$to=xxxxx@xxxxx.xx";    // Ici, j'ai caché le mail pour m'éviter le spamming...
$sujet="Facile...";
$message="Test réussi!";
$headers="From: Me Machin <xxxxx@xxxxx.xx>\r\n Content-Type: text/plain; charset='UTF8_FR'\r\n";   // Mail caché ici aussi.
if(mail ($to, $sujet, $message, $headers))
{
	echo "Mail envoyé!";
}


J'ai aussi essayé sans "\r\n" après UTF8_FR.

Il y a-t-il une erreur?
4
phédra60 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   17
 
Bonjour!
N'y a-t-il plus personne pour éviter un humble débutant en envoi de mails grâce à la fonction PHP mail() ?
Je vous rapelle la situation: j'aimerai pouvoir envoyer des mails au format texte uniquement, pas au format HTML, ceci étant refusé par des serveurs mails et/ou des utilisateurs. Malheureusement, les caractères spéciaux ne passent pas dans le mail reçu par le destinataire.

Vivien.
4
life
 
bonsoir, je me permet de répondre à ce sujet qui je l'avoue commence à dater mais vu que je l'ai trouvé et que j'avais le même problème aujourd'hui même et qu'il n'y à pas vraiment de conclusion positive concernant la première question.
Pour ceux qui cherchent encore, voici ce que j'utilise désormais et qui pour le moment répond à ce problème (sauf contre-avis des spécialistes (que je ne suis pas)).

Deux choses importantes :

I. définir l'encodage du site en ut8, cela vous demandera quelques contraintes avec le texte de votre site directement rédigé dans le code html et php -> remplacer les é par &e acute; (sans l'espace) et ainsi de suite.. C'est une habitude à prendre.

- entre les balises <head></head> : <meta http-equiv="content-type" content="text/html; charset=utf-8" />


II. Deuxièmement utiliser la fonction utf8_decode() (l'inverse : utf8_encode())

<?php
$to = 'you@mail.fr';
$head = 'From: me@mail.fr';

$topic = 'vîvä utf8_ëncôdè';
$topic = utf8_decode($topic);

$msg = 'éàçôùèêâïë...';
$msg = utf8_decode($msg);

mail($to, $topic, $msg, $head);
?>

Si vous avez mieux.. en espérant m'être rendu utile
bon code,
0
ilan27 Messages postés 394 Date d'inscription   Statut Membre Dernière intervention   36
 
Bonsoir, est-ce que tes caractères spéciaux que tu envoies sont du type &#deschiffres ?
Sinon, je crois qu'ils ne sont pas interprétés.
1
phédra60 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   17
 
Ben, en fait quand je dis "caractères spéciaux", je parle des "é", des "à", etc...
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
phédra60 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   17
 
Que veux-tu dire par ils ne sont pas interprêtés? Comment faire en sorte qu'ils le soient? Les caractères spéciaux du type &# suivis de chiffres sont de quel charset (je crois que c'est comme ça qu'on dit) ? Et vous autres, pouvez-vous m'aider?

Vivien.
1
ilan27 Messages postés 394 Date d'inscription   Statut Membre Dernière intervention   36
 
Je pensais que c'était des caractères d'une autre langue, mais si ce n'est que des 'é' etc...
code les ainsi:
é=&eacute;
à=&agrave;
è=&egrave;
ù=&ugrave;
ï=&iuml;
ê=&ecirc;
â=&acirc;
ë=&euml;

Et vous autres, pouvez-vous m'aider? ... sympa, je suis là moi! ^^
1
phédra60 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   17
 
Bonjour,
&eacute;
et compagnie, bref les codes HTML (si je ne me trompe, c'est bien ça?), ne fonctionnent pas. En fait, comme il arrive régulièrement que les mails HTML soient refusés par les serveurs mails ou tout simplement par les utilisateurs à travers leurs réglage de leur boite mail, j'aimerai savoir envoyer un mail en PHP au format texte, pas au format HTML. J'y arrive, mais, du coup, les codes HTML ne fonctionnent pas pour les caractères spéciaux. J'ai essayé plusieurs autres types de codes pour caractères spéciaux, come Unicode, et d'autres dont je ne me souviens plus, trouvés sur CCM et d'autres sites, mais ça n'a pas marché.
Une autre idée?
P.S.: @ilan27 > Ce que t'es susceptible! ^^ Je voulais simplement essayer de rameuter du monde! Quoi? Ca n'a pas été efficace? J'crois bien qu't'as raison... ^^
@tout le monde: désolé pour la forme du message, je n'ai pas réussi à faire autrement pour garder é sous cette forme et non transformé en "é"...
Vivien.
1
spidag
 
Bonjour,
envoies tes mail en UTF8_FR ...
1
phédra60 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   17
 
Bonjour à tous! (Re-bonjour... ^^)
Alors, personne pour m'aider? Moi je sèche... J'ai essayé de changé la casse de UTF8_FR, ça a pas marché...

Vivien.
1
phédra60 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   17
 
Bonjour à tous!
HELP! Je nage, je rame! Qui pourra m'aider?
Je rappelle mon problème: les caractères spéciaux (é, è , etc...) ne passent pas lorsque j'envoie un mail avec la fonction mail() en PHP. Mon script est réécrit dans un post un peu plus haut. On m'a proposé UTF8_FR, mais ça fonctionne pas. Je l'utilise peut-être mal, je sais pas. Pour info, j'utilise EasyPHP pour mes progs.
Vivien.
1
Alain42
 
1
phédra60 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   17
 
Non, il y a pas la solution! Tu m'as envoyé vers un sujet qui correspondait, mais l'auteur a résolu son problème mais en passant son mauil de format text à HTML, et je veux justement éviter de passer par le format HTML.
Merci quand même Alain42!

Vivien.
1
petite fée
 
merci life d'avoir pris le temps de mettre une réponse ici, j'aieu le même problème et tu m'as aidé.
merci encore,
Petite fée
1