У меня есть простая страница контактов, которая отправляет электронное письмо с контактными данными с кодом ниже. Но я не могу прочитать ни одного из них, потому что символы не читаемы. Основываясь на своем веб-сайте, я думаю, что эти электронные письма являются арабскими. Я пробовал так много кодировки символов в моем браузере, но проблема все еще существует. Например, Thats является частью одного электронного письма: اØÙ … Ø ¯ ¾ ¼ ± Я хочу знать, что не так с этим кодом, как я могу это исправить и как читать тексты из предыдущих писем?
<?php $EmailFrom = "info@example.com"; $EmailTo = "info@example.com"; $Subject = Trim(stripslashes($_POST['City'])); $Name = Trim(stripslashes($_POST['Name'])); $Tel = Trim(stripslashes($_POST['Tel'])); $Email = Trim(stripslashes($_POST['Email'])); $Message = Trim(stripslashes($_POST['Message'])); // validation $validationOK=true; if (!$validationOK) { print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">"; exit; } // prepare email body text $Body = ""; $Body .= "Name: "; $Body .= $Name; $Body .= "\n"; $Body .= "Tel: "; $Body .= $Tel; $Body .= "\n"; $Body .= "Email: "; $Body .= $Email; $Body .= "\n"; $Body .= "Message: "; $Body .= $Message; $Body .= "\n"; // send email $success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>"); // redirect to success page if ($success){ print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">"; } else{ print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">"; } ?>
попробуй это
$header = "From: <$EmailFrom> \r\n"; $header .= "MIME-Version: 1.0 \r\n"; $header .= "Content-Type: text/html;charset=utf-8"; $success = mail($EmailTo, $Subject, $Body, $header );
Не идите со своими собственными решениями для составления и отправки электронной почты, вы, вероятно, ошибетесь. Используйте некоторый класс электронной почты, например PHPMailer . Просто установите свойство CharSet:
$mailer = new PHPMailer(); $mailer->CharSet = 'utf-8';
Или [swiftmailer] [2], или Pear's Mail Mime