PHP, mail(), et caractères spéciaux!
phédra60
Messages postés
30
Date d'inscription
Statut
Membre
Dernière intervention
-
petite fée -
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.
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:
- É en php
- É majuscule - Guide
- Easy php - Télécharger - Divers Web & Internet
- Configuration astra 19.2 e - Forum TNT / Satellite / Réception
- Comment écrire à, é, è, ç ê en majuscule ... ? - Forum Clavier
- Expert php pinterest - Télécharger - Langages
13 réponses
Ca n'a pas marché! Voici mon script de test:
J'ai aussi essayé sans "\r\n" après UTF8_FR.
Il y a-t-il une erreur?
$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?
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.
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.
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,
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,
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.
Sinon, je crois qu'ils ne sont pas interprétés.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
Vivien.
Je pensais que c'était des caractères d'une autre langue, mais si ce n'est que des 'é' etc...
code les ainsi:
é=é
à=à
è=è
ù=ù
ï=ï
ê=ê
â=â
ë=ë
Et vous autres, pouvez-vous m'aider? ... sympa, je suis là moi! ^^
code les ainsi:
é=é
à=à
è=è
ù=ù
ï=ï
ê=ê
â=â
ë=ë
Et vous autres, pouvez-vous m'aider? ... sympa, je suis là moi! ^^
Bonjour,
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.
é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.
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.
Alors, personne pour m'aider? Moi je sèche... J'ai essayé de changé la casse de UTF8_FR, ça a pas marché...
Vivien.
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.
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.
vas voir ce site, il y a peut être la solution:
https://www.developpez.net/forums/d426642/php/langage/mail-probleme-caracteres-accentues/
https://www.developpez.net/forums/d426642/php/langage/mail-probleme-caracteres-accentues/