Envoi mail PHP: erreur caractères (é,è,...)

Résolu/Fermé
pfdp0 Messages postés 168 Date d'inscription jeudi 22 décembre 2011 Statut Membre Dernière intervention 16 janvier 2018 - Modifié par pfdp0 le 17/04/2014 à 20:05
 Utilisateur anonyme - 17 avril 2014 à 20:26
Bonsoir à tous,

Mon problème est le suivant: J'ai une page web (example1.php) dans laquelle il y a un "textarea" et une page web (example-post.php) qui est chargée d'envoyer par e-mail le contenu du textarea.
Le problème est qu'une fois l'e-mail envoyé, celui-ci n'affiche pas correctement les caractères spéciaux (é,è,ê,â,ect...), comment résoudre ce problème?
Voici une partie du code de la page example1-post.php:
$email="example@live.com";
if(!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $email)){$passage_ligne = "\r\n";}else{$passage_ligne = "\n";}
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
$sujet = "Contact Example";
$header = "From: \"Example\"<contact@example.com>".$passage_ligne;
$header.= "Reply-to: \"Example\" <contact@example.com>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
$message = $passage_ligne."--".$boundary.$passage_ligne;
$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.nl2br($_POST['message']).$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary.$passage_ligne;
mail($email,$sujet,$message,$header);


Merci d'avance pour vos réponses, bonne soirée
A voir également:

1 réponse

Utilisateur anonyme
17 avril 2014 à 20:08
Bonjour,

Dans header, tu peux mettre :

$header .='Content-Type: text/plain; charset="iso-8859-15"' . $passage_ligne;

Tu forceras ainsi l'encodage des caractères.
0
pfdp0 Messages postés 168 Date d'inscription jeudi 22 décembre 2011 Statut Membre Dernière intervention 16 janvier 2018 12
17 avril 2014 à 20:23
Merci beaucoup, ça a fonctionné !
Par contre, je devais modifier $message et pas $header
0
Utilisateur anonyme
17 avril 2014 à 20:26
D'habitude c'est dans les headers qu'on met ça.
0