Я испытываю некоторые затруднения из-за внешних символов при посылании электронного письма. Кто-то мог консультировать меня по вопросам того, что сделать? Я подозреваю, что проблемой могла быть одна из трех вещей.
Есть ли какие-либо другие возможные причины?
Я пытаюсь пробить их 1 на 1, пока я не нахожу проблему. Я думаю, что опция 2 является наиболее вероятной причиной. Как я добавляю надлежащий - универсальное кодирование к почтовой функции?
Это - то, что я имею в данный момент.
$mail_sent = mail($client_email, $title, $message, "From: {$visitor_email}");
Я в настоящее время знаю, что форма не отправляет полировку или шведские символы.
Я был бы очень благодарен, если кто-то мог бы указать на какие-либо другие возможные причины и сказать мне, что, кодируя я должен использовать для отправки электронных писем.
Большое спасибо.
Насколько мне известно, PHP не поддерживает UTF-8 в качестве кодировки по умолчанию для своих строк. Вам необходимо использовать соответствующие функции кодирования / обработки для той кодировки, которую вы предпочитаете.
Также добавьте Content-Type: text / html; charset = utf-8
в заголовки электронной почты, чтобы почтовые клиенты отображали символы правильно (или заменяли их кодировкой по вашему выбору).
Вы не указали тип и кодировку вашего содержания. Попробуйте это:
$headerFields = array(
"From: {$visitor_email}",
"MIME-Version: 1.0",
"Content-Type: text/html;charset=utf-8"
);
$mail_sent = mail($client_email, $title, $message, implode("\r\n", $headerFields));
Я использую следующий код:
$text = "";
$text .= "<html>\n";
$text .= "<body style=\"font-family:Arial; \">\n";
$text .= "<b>Add Your text here . . .</b>";
$text .= date("d.m.Y") . " <br><br>\n\n";
$text .= "</body>\n";
$text .= "</html>\n";
$headers = 'From: ' . $myEmail . "\r\n";
$headers .= 'To: ' . $depEmail . "\r\n";
$headers .= 'Return-Path: ' . $myEmail . "\r\n";
$headers .= 'MIME-Version: 1.0' ."\r\n";
$headers .= 'Content-Type: text/HTML; charset=ISO-8859-1' . "\r\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\r\n";
$headers .= $text . "\r\n";
set_time_limit(30);
if (!mail('', 'Demande information', '', $headers)) {
Alert(...)
Используйте почтовую оболочку PHP, это сохранит ваше рассудок (исходя из опыта здесь). Например, PHPMailer позволяет вам установить кодировку исходящей электронной почты и создает сообщение для вас.
Также используйте UTF-8; в настоящее время он поддерживается почти повсеместно и охватывает всех персонажей, которые вам когда-либо понадобятся.