我使用简单的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。
感谢任何帮助。
答案 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)