Неверная кодировка писем на mail.ru

impossible
На сайте с 12.01.2008
Offline
220
1255

Доброго дня!

Есть скрипт, который отправляет на почту mail.ru заявки клиентов.

На гмаил все ок, а на маил.ру текст весь отображается вопросами.

Вот код:



<?php

$email_from = "********"; // От кого отправляем
$email_to = "*********"; // Куда отправляем

// страница фидбек
$good = "Ваше сообщение успешно отправлено"; // Сообщение об успешной доставке, страница feedback
$subject = "Обратная связь"; // Тема письма

// купон на скидку
$good2 = "<h2>Поздравляем!</h2><br /><p>На Ваш адрес выслан купон на скидку!</p>"; // Обратное сообщение купон на скидку
$subject2 = "Скидочный купон на натяжные потолки"; // Тема письма
$message2 = "
<html>
<head>
<title>Вы получили скидку 5%</title>
</head>
<body>
<p>БЛА БЛА БЛА
</p>
</body>
</html>"; // Текст письма купона

// вам перезвонить
$good3 = "<h2>Спасибо!</h2><br /><p>Ваше сообщение отправлено!</p>";
$subject3 = "Вам перезвонить"; // Тема письма

// бесплатный вызов замерщика
$good4 = "<h2>Спасибо!</h2><br /><p>Наш менеджер свяжется с Вами в ближайшее время!</p>";
$subject4 = "Вызов замерщика"; // Тема письма

$author = trim($_POST['author']);
$mail = trim($_POST['email']);
$mssg = trim($_POST['text']);
$replace = array("(", ")", "+", " ", "-");
$phone = str_replace($replace, '', $_POST['phone']);
$time = trim($_POST['time']);
$adress = trim($_POST['adress']);
$feedback = $_POST['feedback'];
$coupon = $_POST['coupon'];
$callback = $_POST['callback'];
$callspec = $_POST['callspec'];

function koiutf ($str) {
$str = iconv ("utf-8", "koi8-r", $str);
return $str;
}

if(isset($feedback) ) {
print $good;
$message = "Имя: ".stripslashes($author)."\r\n";
$message .= "E-mail: ".stripslashes($mail)."\r\n";
$message .= "Сообщение: ".stripslashes($mssg)."\r\n";
$headers = 'From: '.$email_from."\r\n" .
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion().
'MIME-Version: 1.0' . "\r\n".
'Content-type: text/html; charset=KOI8-R \r\n';

mail($email_to, koiutf($subject), koiutf($message), $headers);
die();
}
if(isset($coupon)) {
print $good2;
$message = "Имя: ".stripslashes($author)."\r\n";
$message .= "E-mail: ".stripslashes($mail)."\r\n";
$message .= "Телефон: ".stripslashes($phone)."\r\n";
$headers = 'From: '.$email_from."\r\n" .
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion().
'MIME-Version: 1.0' . "\r\n".
'Content-type: text/html; charset=KOI8-R \r\n';

mail($email_to, koiutf($subject2), koiutf($message), $headers);

$headers = 'From: '.$email_from."\r\n" .
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion().
'MIME-Version: 1.0' . "\r\n".
'Content-type: text/html; charset=KOI8-R \r\n';
mail($mail, koiutf($subject2), koiutf($message2), $headers);
die();
}
if(isset($callback)) {
print $good3;
$message = "Имя: ".stripslashes($author)."\r\n";
$message .= "Телефон: ".stripslashes($phone)."\r\n";
$message .= "Сообщение: ".stripslashes($mssg)."\r\n";
$headers = 'From: '.$email_from."\r\n" .
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion().
'MIME-Version: 1.0' . "\r\n".
'Content-type: text/html; charset=KOI8-R \r\n';

mail($email_to, koiutf($subject3), koiutf($message), $headers);
die();
}
if(isset($callspec)) {
print $good4;
$message = "Имя: ".stripslashes($author)."\r\n";
$message .= "Телефон: ".stripslashes($phone)."\r\n";
$message .= "Желаемое время: ".stripslashes($time)."\r\n";
$message .= "Адрес: ".stripslashes($adress)."\r\n";
$message .= "Сообщение: ".stripslashes($mssg)."\r\n";
$headers = 'From: '.$email_from."\r\n" .
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion().
'MIME-Version: 1.0' . "\r\n".
'Content-type: text/html; charset=KOI8-R \r\n';

mail($email_to, koiutf($subject4), koiutf($message), $headers);
die();
}

M
На сайте с 04.12.2013
Offline
223
#1

Ну, попробуйте в другой, более популярной, кодировке отправлять письмо. В крайнем случае используйте другой почтовый сервис для сбора писем.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#2

У вас файл в какой кодировке?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
M
На сайте с 04.12.2013
Offline
223
#3

Все строки с \r\n обрамите кавычками, а не апострофами. Гляньте на исходник письма со служебными заголовками в mail.ru. Возможно, ошибка будет сразу заметна.

---------- Добавлено 20.12.2014 в 23:28 ----------

После последнего заголовка не нужно добавлять разрыв строки, он будет добавлен автоматически.

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#4
$str = iconv ("utf-8", "koi8-r", $str);

Зачем?! Что за деревянный код ? :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий