Téléchargement
illégal
Posez votre question Signaler

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

phédra60 30Messages postés 6 février 2007Date d'inscription - Dernière réponse le 17 mai 2010 à 17:56
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.
Lire la suite 

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

14 réponses
Réponse
+3
moins plus
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?
Ajouter un commentaire
Réponse
+1
moins plus
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.
life - 21 févr. 2010 à 00:55
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,
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
Ben, en fait quand je dis "caractères spéciaux", je parle des "é", des "à", etc...
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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! ^^
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
envoies tes mail en UTF8_FR ...
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
vas voir ce site, il y a peut être la solution:

http://www.developpez.net/forums/showthread.php?t=426642
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Ce document intitulé « PHP, mail(), et caractères spéciaux! » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?