web-dev-qa-db-fra.com

Le jeu de caractères UTF-8 ne fonctionne pas pour le formulaire de courrier PHP

J'essaie de résoudre le problème de la lecture de caractères spéciaux , (de plus, je ne peux pas l'obtenir sur l'un des Gmail). J'obtiens quelque chose comme ceci " × œ × “× • × " et ce "" • Чђ\"" • "envoyé par mon WP blog J'ai essayé tous les moyens qui ont été expliqués sur Stack Overflow , mais les questions pourraient être spécifiques, ce qui ne m'avait pas fonctionné. Je n'utiliserai aucun plugin pour cela, donc mon code préféré est ici:

<?php 
   .....................
        if(!isset($hasError)) {


        $emailTo = '[email protected],  [email protected], [email protected] ' ;
            $subject = $_POST['subject'];
                $comments= $_POST['comments'];
                $dge= $_POST['dge'];
                $tve= $_POST['tve'];
                $weli= $_POST['weli'];
        $sendCopy = trim($_POST['sendCopy']);
        $body = "Name: $ContactName \n\nEmail: $email \n\nComments: $comments \n\n Subject :$subject \n\n Number: $phone \n\n $dge / $tve /$weli";

        mail($emailTo, ": הודעה" , $body, "Travel-Georgia" );
        ///////////////// 
        // set our boolean completion value to TRUE
        $emailSent = true;
    }
}    
?>   
    .......

                    <form id="contact-us"  method="post" accept-charset="utf-8"> .......</form>
1
Gio

Vous devez encoder le contenu de vos courriers électroniques en utilisant les méthodes de codage appropriées avant qu'ils ne s'affichent correctement dans les courriers électroniques.

Si j'étais vous, j'utiliserais la fonction wp_mail () à l'intérieur de WordPress pour envoyer les courriels. Je ne sais pas si cela fait tous les encodages requis.

Une autre alternative consiste à utiliser SwiftMailer pour envoyer les courriels. Il s’occupe certainement de tous les codages et autres tâches nécessaires pour envoyer un courrier électronique correctement codé.

2
Tero Kilkanen