Добрый день,
В каком месте в данном классе выставляется кодировка?
Есть такой фрагмент:
$from = 'evosduple@tastycoffee.kz';
$body =
"\n\n\t Фирма: ".$model->firm . '<br>'
."\n\n\t Город: ".$model->city . '<br>'
."\n\n\t Телефон: ".$model->phone .'<br>'
."\n\n\t Контактное лицо: ".$model->name .'<br>'
."\n\n\t Email: ".$model->email;
$body = "=?utf-8?B?".base64_encode($body)."?=";
$subject = "=?utf-8?B?".base64_encode('Запрос прайс-листа oт '.$model->name)."?="; // Кодируем тему (во избежание проблем с кодировкой)
// тут в цикле отправляю email на необходимые адреса
foreach(Yii::app()->params['email'] as $key => $email){
//mail($email, $subject, $body, $headers);
My::mailsend($email, $from ,$subject,$body);
}
Метод My::mailsend():
static function mailsend($to,$from,$subject,$message){
$mail=Yii::app()->Smtpmail;
$mail->SetFrom($from, 'FirmaName');
$mail->Subject = $subject;
$mail->MsgHTML($message);
$mail->AddAddress($to, "");
if(!$mail->Send())
echo "Mailer Error: " . $mail->ErrorInfo;
}
После отправки данных из формы на почту приходит письмо с правильной кодировкой для
Subject , а вот
body (текст письма):
ФиÑма: test
ÐоÑод: test
ТелеÑон: test
ÐонÑакÑное лиÑо: test
Email: test@test.kz
Т.е. некорректно отображаются славянские буквы. Как это можно исправить?
Раньше использовал простую функцию mail(), но на хостинге новые стандарты, нужно проходить smtp авторизацию.
В первом случае, заголовки с кодировкой и остальным передавались в функцию
mail(). Пробовал закодировать
$body, как это сделано с
$subject. В данном случае прилетает такой текст:
=?utf-8?B?CgoJINCk0LjRgNC80LA6IHRlc3Q8YnI+CgoJINCT0L7RgNC+0LQ6IHRlc3Q8YnI+CgoJINCi0LXQu9C10YTQvtC9OiB0ZXN0PGJyPgoKCSDQmtC+0L3RgtCw0LrRgtC90L7QtSDQu9C40YbQvjogdGVzdDxicj4KCgkgRW1haWw6IHRlc3RAdGVzdC5reg==?=