“charset = UTF-8”在php中发送邮件

时间:2015-04-02 13:05:14

标签: php email utf-8 character-encoding

我的老师要求我们能够通过我们的网站发送电子邮件。当我说法语时,我尝试在标题中使用charset = UTF-8。它适用于邮件地址,标题,带有特殊字符的名称,但不适用于邮件本身的邮件...

我总是会收到 =?UTF-8?B?w6nDqSDDqMOoIMOgw6Agw6fDpw ==?= 这样的消息。

这是我的php代码:

function contenuContactHTML(){
        echo '  <div id="contenu">
                    <h1> Formulaire de Contact </h1>
                    <form action="" method="post">
                        Votre Nom: <input type="text" name="prenomFormulaire"><br>
                        Votre E-mail: <input type="text" name="emailFormulaire"><br>
                        Sujet du message : <input type="text" name="sujetMailFormulaire"><br>
                        Votre Message: <textarea cols="40" rows="6" name="messageFormulaire" maxlength="4000" placeholder="message limité à 4000 cractères" required></textarea><br />
                        <input type="submit" name="envoieMailContact" value="Envoyer E-Mail">
                    </form>
                </div><!-- #contenu -->
            </div><!-- #centre --> ';
            envoieMail();       
    }

function envoieMail(){
        if(isset($_POST['envoieMailContact'])){ 
            $a = <i> My email adress</i>;
            $sujet = "=?UTF-8?B?".base64_encode($_POST['sujetMailFormulaire'])."?=";
            $de = "=?UTF-8?B?".base64_encode($_POST['emailFormulaire'])."?=";
            $messFormulaire = $_POST['messageFormulaire'];
            $message = "=?UTF-8?B?" . base64_encode($messFormulaire) . "?="; 
            $entete = "From: ". $de ."\r\n"
                      ."MIME-Version: 1.0" . "\r\n" 
                      .'Content-type: text/html; charset=UTF-8' .'\r\n';
            mail($a, $sujet, $message, $entete);
            echo "<script language='JavaScript'>alert('Message envoyé !')</script>"; 
        }       
    }

以下是我收到的邮件示例:
电子邮件地址:mické@hotmail.com
sujet(标题):onépasdespigeaôns
邮件内容(留言):
=?UTF-8 2 B 4 YXplcnR5dWlvcF4kDQpxc2RmZ2hqa2xtw7nCtQ0Kd3hjdmJuLDs6DQrCsibDqSInKMKnw6ghw6fDoCkt?=

0 个答案:

没有答案