[RESOLU] envoi d'un mail et caracteres accentués

Eléphanteau du PHP | 19 Messages

08 janv. 2016, 09:32

Bonjour

je me tourne vers vous car j'ai quelques soucis...
je n'arrive pas à trouver la solution..

j'ai un petit script php qui envoi un mail d'apres les données POST qu'il recoit:
<?php
$dest = $_POST['dest'];
$phrase1 = $_POST['phrase1'];
$phrase2 = $_POST['phrase2'];
$message = $phrase1. "\r\n" . $phrase2;
     $to      = $dest;
     $subject = 'Test denvoi dun mail';
     $message = $message;
     $headers = 'From: [email protected]' . "\r\n" .
     'Reply-To: [email protected]' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();

     mail($to, $subject, $message, $headers);
 ?>
j'ai 2 principaux soucis avec ce script:

1- Si j'envoi en :
phrase1 = "Ceci est la première phrase à envoyer"
phrase2 = "A t-elle été correctement envoyée?",

j'obtiens un mail contenant :

Ceci est la premiÿFFFFE8re phrase ÿFFFFE0 envoyer
A t-elle ÿFFFFE9tÿFFFFE9 correctement envoyÿFFFFE9e?


2- je n'ai pas de retour pour savoir si il a effectué l'envoi ou pas... juste une sorte de success/error suffirait...

j'ai compris qu'il vaux utiliser var dump mais je vois pas comment, j'ai fait divers test...

Merci pour votre aide :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

08 janv. 2016, 10:15

Bonjour,
1- j'obtiens un mail contenant :

Ceci est la premiÿFFFFE8re phrase ÿFFFFE0 envoyer
A t-elle ÿFFFFE9tÿFFFFE9 correctement envoyÿFFFFE9e?
Il s'agit d'un soucis d'encodage de caractère, essaye utf8_encode() ou utf8_decode() sur les phrases que tu reçois de ton visiteur.
http://php.net/manual/fr/function.utf8-encode.php
http://php.net/manual/fr/function.utf8-decode.php
2- je n'ai pas de retour pour savoir si il a effectué l'envoi ou pas... juste une sorte de success/error suffirait...
Et la valeur de retour de la fonction mail() alors ? :D
http://php.net/manual/fr/function.mail.php
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 19 Messages

08 janv. 2016, 12:41

Merci pour votre reponse

Merci @rtur d'aider le modeste petit elephanteau que je suis :)

j'ai essayé utf8_decode :
$phrase1 = utf8_decode ($_POST['phrase1']);
$phrase2 = utf8_decode ($_POST['phrase2']);
j'obtiens :
Ceci est la premi?FFFFE8re phrase ?FFFFE0 envoyer
A t-elle ?FFFFE9t?FFFFE9 correctement envoy?FFFFE9e?


il y a des ? à la place des ÿ
Quand à utf8_encode, cela me donne le meme problème qu'au debut...

je ne vois pas de quel encodage il peut s'agir, mais je pense que je dois utiliser iconv()
encore faudrait-il que je sache de quel iso ou encodage il s'agit...

pour ce qui est du 2eme probleme, le script ne peut -il pas echo le resultat de l'envoi (true ou false) ?

Mammouth du PHP | 1967 Messages

08 janv. 2016, 12:48

oui rajoute un echo devant ta fonction mail, cela te rournera un true ou un false
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 19 Messages

11 janv. 2016, 01:28

Merci à vous :)