Comment mettre son mail php en utf-8 ?

Bonjour,
sur ma page web php j'ai un script pour envoyer les mails mais le problemes c'est qu'il ne les envoie pas en utf-8
Voici le php :
<?php
session_start();
if ($_POST['Submit'] == 'Envoyer')
{
if (strcmp(md5($_POST['user_code']),$_SESSION['ckey']))
{
header("Location: index.php?msg=Erreur : Mauvais code!");
exit();
}
$to = $_POST['toemail'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$fromemail = $_POST['fromemail'];
$fromname = $_POST['fromname'];
$lt= '<';
$gt= '>';
$sp= ' ';
$from= 'From:';
$headers = $from.$fromname.$sp.$lt.$fromemail.$gt;
mail($to,$subject,$message,$headers);
header("Location: index.php?msg=Mail Envoyé!");
exit();
}
?>
comment dois-je faire pour que les mails soient envoyer en utf-8 ?

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut,

    Il faut définir le paramètre charset dans les entêtes du mail (le quatrième paramètre de la fonction mail).

    Tu peux voir un exemple sur la doc ici : https://www.php.net/manual/fr/function.mail.php#example-3847
    Dans cet exemple il défini le charset iso-8859-1, il te suffit simplement de le remplacer par utf8.

    Un autre exemple proposé dans les commentaires de la doc : https://www.php.net/manual/fr/function.mail.php#108669

    Bonne journée,
    1. merci mais dans mon cas alors avec ce script je dois faire comment, pourrai tu me le faire sans abimer le script ?
      <?php 
      session_start(); 
      if ($_POST['Submit'] == 'Envoyer') 
      { 
      if (strcmp(md5($_POST['user_code']),$_SESSION['ckey'])) 
      { 
      header("Location: index.php?msg=Erreur : Mauvais code!"); 
      exit(); 
      } 
      $to = $_POST['toemail']; 
      $subject = $_POST['subject']; 
      $message = $_POST['message']; 
      $fromemail = $_POST['fromemail']; 
      $fromname = $_POST['fromname']; 
      $lt= '<'; 
      $gt= '>'; 
      $sp= ' '; 
      $from= 'From:'; 
      $headers = $from.$fromname.$sp.$lt.$fromemail.$gt; 
      mail($to,$subject,$message,$headers); 
      header("Location: index.php?msg=Mail Envoyé!"); 
      exit(); 
      } 
      ?>
      


      EDIT : Ajout des BALISES DE CODE (jordane)
      1. Modérateur
        Bonjour,

        1 - Pense à utiliser la coloration syntaxique (les balises de code) la prochaine fois.

        2 - As tu lu les liens qui t'ont été donnés ???? TOUT y est !