如何将土耳其字符添加到此表单:
$mailed = mail($to, '=?utf-8?B?'.base64_encode($message).'?=', $message, $headers);
中的
我已经添加'=?utf-8?B?'.base64_encode
,只修复了主题。但是所有的身体仍然是这样的:ĞÜLÅžÃ-ÇIğüşiöçı如果打字ĞÜLŞÖÇIğüşiöçı例如。
<?php
if (isset($_POST['name']) && isset($_POST['email']) && isset($_POST['message']) && isset($_POST['subject'])) {
$companyname = $_POST['company-name'];
$name = $_POST['name'];
$email = $_POST['email'];
$areacode = $_POST['areacode'];
$phone = $_POST['phone'];
$city = $_POST['city'];
$state = $_POST['state'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$to = "";
$subject = "$subject";
$message = "Name: $name\nPhone Number: $areacode $phone\nCity: $city\nState: $state\n\n$message";
$headers = "From: $email";
$mailed = mail($to, '=?utf-8?B?'.base64_encode($message).'?=', $message, $headers);
if (isset($_POST['ajax'])) {
$response = ($mailed) ? "1" : "0";
} else {
$response = ($mailed) ? "<h2>Success!</h2>" : "<h2>Error! There was a problem with sending.</h2>";
}
echo $response;
} else {
echo "Form data error!";
}
答案 0 :(得分:2)
您还应该对邮件进行编码(UTF8)。
您可以使用headers
函数的mail
参数来执行此操作。
<强> additional_headers 强>
要插入电子邮件标题末尾的字符串。这是 通常用于添加额外的标题(From,Cc和Bcc)。多 额外的标题应该用CRLF(\ r \ n)分隔。验证 参数不被攻击者注入不需要的标题。
替换下一个代码:
$headers = "From: $email";
使用:
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: '.$email . "\r\n";
应该有效。 如果没有,请更新我。