Encodage ... [php]

Phpu_u Messages postés 63 Statut Membre -  
arthezius Messages postés 3756 Statut Membre -
Bonjour,

J'ai fait un script pour envoyer un mail, pas de prob ça marche !
Sauf que : Je test avec Gmail, ça s'affiche, mais avec Yahoo et Hotmail (j'ai essayé que ces deux là) ça fait un problème d'encodage (les signes comme "é-è-ê" remplacé par des signes) ! Donc, quelqu'un aurait une tech pour que ça marche avec toutes les messageries ?

Merci d'avance !

1 réponse

  1. arthezius Messages postés 3756 Statut Membre 475
     
    Il y a plusieurs chose à prendre en compte.
    Tout d'abord, il y a l'encodage du fichier contenant le script d'envoi (celui utiliser à l'enregistrement du fichier).
    Tu peux vérifier celui-ci avec les éditeurs de textes adapté à la programmation comme Notepad++.

    Il y a également celui que tu déclares dans l'entête du mail.
    En partant des exemples de cette page: https://www.vulgarisation-informatique.com/mail.php
    <?php
         $headers ='From: "nom"<adresse@fai.fr>'."\n";
         $headers .='Reply-To: adresse_de_reponse@fai.fr'."\n";
         $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
         $headers .='Content-Transfer-Encoding: 8bit';
    
         if(mail('adresse_du_destinataire@fai.fr', 'Sujet', 'Message de test', $headers))
         {
              echo 'Le message a bien été envoyé';
         }
         else
         {
              echo 'Le message n\'a pu être envoyé';
         }
    ?> 

    Ici l'encodage déclaré est iso-8859-1.
    Est-ce celui de mes fichiers PHP?
    Si oui, tant mieux.
    Sinon, il y aura des conflits.

    Vérifie que dans ton cas le tout est cohérent.

    A lire également: https://www.alsacreations.com/astuce/lire/69-declarer-encodage-des-caracteres.html
    0