在php电子邮件脚本上设置charset

时间:2014-12-09 00:13:20

标签: php forms email utf-8 character-encoding

我需要帮助在我的php电子邮件脚本上将字符集设置为utf-8。我在开始时添加了header('Content-type: text/html; charset=utf-8'),它可以处理错误消息等,但它不适用于电子邮件本身。像“ç”这样的东西显示为“Ô。

这就是我所拥有的:

<?php

header('Content-type: text/html; charset=utf-8');

if(isset($_POST['email'])) {



    // EDIT THE 2 LINES BELOW AS REQUIRED

    $email_to = "contato@infoelo.com.br";

    $email_subject = "Contato de cliente";





    function died($error) {

        // your error code can go here

        echo "Desculpe, ocorreram alguns erros com o formulário que você preencheu. ";

        echo "Os erros são.<br /><br />";

        echo $error."<br /><br />";

        echo "Por favor volte e conserte os erros.<br /><br />";

        die();

    }



    // validation expected data exists

    if(!isset($_POST['nome']) ||

        !isset($_POST['servico']) ||

        !isset($_POST['email']) ||

        !isset($_POST['phone']) ||

        !isset($_POST['message'])) {

        died('Desculpe, houve um problema com o formulário que você preencheu.');       

    }



    $nome = $_POST['nome']; // required

    $servico = $_POST['servico']; // required

    $email_from = $_POST['email']; // required

    $phone = $_POST['phone']; // not required

    $message = $_POST['message']; // required



    $error_message = "";

    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

  if(!preg_match($email_exp,$email_from)) {

    $error_message .= 'Houve um erro com o email inserido.<br />';

  }

    $string_exp = "/^[A-Za-z .'-]+$/";

  if(!preg_match($string_exp,$nome)) {

    $error_message .= 'Houve um erro com o nome inserido.<br />';

  }

  if(!preg_match($string_exp,$servico)) {

    $error_message .= 'Houve um erro com o servico escolhido.<br />';

  }

  if(strlen($message) < 2) {

    $error_message .= 'Houve um erro com as considerações inseridas.<br />';

  }

  if(strlen($error_message) > 0) {

    died($error_message);

  }

    $email_message = "Detalhes do contato abaixo.\n\n"; 



    function clean_string($string) {

      $bad = array("content-type","bcc:","to:","cc:","href");

      return str_replace($bad,"",$string);

    }



    $email_message .= "Nome: ".clean_string($nome)."\n"; 

    $email_message .= "Email: ".clean_string($email_from)."\n";

    $email_message .= "Telefone: ".clean_string($phone)."\n";

    $email_message .= "Serviço: ".clean_string($servico)."\n";

    $email_message .= "Considerações: ".clean_string($message)."\n";





// create email headers

$headers = 'From: '.$email_from."\r\n".

'Reply-To: '.$email_from."\r\n" .

'X-Mailer: PHP/' . phpversion();

@mail($email_to, $email_subject, $email_message, $headers);  

?>



<!-- include your own success html here -->



Obrigado por entrar em contato. Retornaremos em breve.



<?php

}

?>

0 个答案:

没有答案