如何设置php联系表单以UTF编码发送信息

时间:2014-08-26 21:52:27

标签: php email encoding utf-8

我使用简单的php邮件代码来制作联系表单。这是代码:

<?php $name = $_POST['name'];
   $email = $_POST['email'];
   $message = $_POST['message'];
   $formcontent="From: $name \n Message: $message";
   $recipient = "info@cactuspics.com";
   $subject = $_POST['subject'];
   $mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("ERROR");
   echo "EMAIL SENT";
?>

但问题是,当我在我的邮箱中收到电子邮件时,它以ANSI编码。像这样的东西:

با سلام به گالري

有没有办法强制php以UTF-8格式发送这些信息?因为我的访客在联系表格中使用阿拉伯字符。

我试图使用它,但仍然没有工作:

'=?utf-8?B?'.base64_encode($formcontent).'?='

我还要注意,我在HTML页面的元标记中声明了charset = utf8。

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我只需要添加:

$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
一切都很顺利。

答案 1 :(得分:0)

这只是一个例子,改变价值......

$header = "From: contact@".$_SERVER["SERVER_NAME"]."\n";
$header .= "Content-Type: text/html; charset=utf-8\n";
$recipient = "info@cactuspics.com"
$subject = $_POST['subject'];

    $body='<table width="90%" border="0">
    <tr>
    <td><b>Name:</b></td> <td>'.$name.'</td>
    </tr>
    <tr>
    <td><b>Email:</b></td> <td>'.$email.'</td>
    </tr>
    <tr>
    <td><b>Message:</b></td> <td>'.$message.'</td>
    </tr>
    <tr></table>';

    $res=@mail($recipient,$subject,$body,$header)