Php Mail caractères bizarres

Résolu
Herve_be Messages postés 1182 Date d'inscription   Statut Membre Dernière intervention   -  
Herve_be Messages postés 1182 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'envoie des mails via php, j'appelle le script php avec des paramètres
par exemple je veux envoyer https://...mail.php?S=Hervé
j'encode l'URL comme ceci https://...mail.php?S=Herv%E9
le code de mail.php
<?php
$S=$_GET["S"]; // $_GET décode l'URL
$message = "bla bla;
$Mail = "destinataire@gmail.com";
$headers = "MIME-Version: 1.0\r\nContent-type:text/plain;charset=iso-8859-1\r\nFrom: expéditeur\r\n";
if (mail($Mail, $S, $message, $headers))
...

Je reçois bien le mail mais le sujet $S devient Herv�
Même problème avec le contenu du message.

J'ai essayé comme ceci
if (mail($Mail, utf8_decode($S), utf8_decode($message), $headers))


cette fois le sujet est Herv?

Comment encoder le sujet et le message pour qu'ils soient reçus correctement ?
Merci d'avance pour votre aide

3 réponses

  1. Herve_be Messages postés 1182 Date d'inscription   Statut Membre Dernière intervention   11
     
    J'ai trouvé en partie
    $headers = "MIME-Version: 1.0\r\nContent-type:text/html;charset=utf-8\r\nFrom: expéditeur\r\n";
    if (mail($Mail, $Subject, $message, $headers))
    les caractères spéciaux par exemple ($%) passent sans problème
    mais les éè sont remplacés par un point d'interrogation blanc dans un losange noir (je ne parviens pas à le copier ici).
    0
  2. Herve_be Messages postés 1182 Date d'inscription   Statut Membre Dernière intervention   11
     
    J'avais effectivement mis UTF-8 dans le header, voir mon second message.
    Mais j'avais toujours des caractères bizarres, et avec utf8_encode aussi mais pas les mêmes.
    J'ai compris.
    Dans le mail j'ai du texte fixe donc en UTF-8 : si je les encode à nouveau ça fait des nœuds.
    Par contre le php reçoit des paramètres qui ne sont pas en UTF-8.
    La solution consiste donc à utf8_encodeR les paramètres et pas tout le message.
    Ça fonctionne !
    0