Bonjour,

J'ai actuellement un soucis de charset lors d'un envoi automatique de mail avec la fonction mail()
Je suppose que j'ai du oublier quelque chose à quelque part, sachant que j'ai le même problème sur 2 hébergeurs différents, ça vient de moi ^^

Voici donc mon formulaire html :
J'ai remplacé les portions inutiles du code par des [...].

Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
 
    [...]
 
  </head>
 
  <body>
 
   [...]
      <form action="contact.php" method="post" id="myForm">
 
        <fieldset>
 
          <legend>Formulaire de Contact</legend>
 
          <div class="espacement"></div>
 
          <p class="deux_colonnes">
            <label for="nom">Nom :</label>
            <input type="text" id="nom" name="nom" class="validate['required']"/>
          </p>
 
          <p class="deux_colonnes">
            <label for="prenom">Prénom :</label>
            <input type="text" id="prenom" name="prenom" class="validate['required']"/>
          </p>
 
          <p class="deux_colonnes">
            <label for="mail">Adresse E-Mail :</label>
            <input type="text" id="mail" name="mail" class="validate['required','length[5,-1]','email']" />
          </p>
 
          <p class="deux_colonnes">
            <label for="message">Message :</label>
            <textarea id="message" name="message" rows="10" cols="40" class="validate['required']"></textarea>
          </p>
 
          <p class="deux_colonnes">
            <label for="securite">Sécurité, combien font 2+3 ? :</label>
            <input type="text" id="securite" name="securite" class="validate['required','number','spamcheck']"/>
          </p>
 
          <p class="deux_colonnes">
            <input type="submit" value="envoyer" />
          </p>
 
        </fieldset>
 
      </form>
 
    [...]
 
  </body>
 
</html>

Et voici le php :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
<?php
[...]
  // Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail
  else
  {
    /* Destinataire (votre adresse e-mail) */
    $to = '**********************';
 
    /* Construction du message */
    $msg  = 'Bonjour,'."\r\n\r\n";
    $msg .= 'Ce mail a été envoyé depuis la page CONTACT par '.$prenom.' '.$nom."\r\n\r\n";
    $msg .= 'Voici le message :'."\r\n";
    $msg .= '***************************'."\r\n";
    $msg .= $message."\r\n";
    $msg .= '***************************'."\r\n";
 
    /* En-têtes de l'e-mail */
    $headers = 'From: '.$nom.' '.$prenom.' <'.$expediteur.'>'."\r\n\r\n";
    $headers .='Content-Type: text/html; charset="utf-8"'."\n";
 
    /* Envoi de l'e-mail */
    if(mail($to, 'Contact - *******', $msg, $headers))
    {
      header("location:succes.html");
    }
    else
    {
      header("location:echec.html");
    }
  }
}
?>

Le rendu du mail donne ça :

Content-Type: text/html; charset="utf-8"


Bonjour,

Ce mail a été envoyé depuis ************ par Serj A l'Ombre du temple de Dalriel

Voici le message :
***************************
é"'(-è_çà à à à à à à à Ã
***************************
Le content-type est en fait inclus directement dans le corps du message... Ce qui semble à mon avis être une erreur... Pourtant, j'estime ne rien avoir fait motivant ce soucis :p