Почему эта тема сообщения не закодирована правильно? (php mail) - PullRequest
0 голосов
/ 24 декабря 2010

Я использую этот код для отправки электронного письма:

$headers="MIME-Version: 1.0"."\n";
$headers.="Content-type: text/plain; charset=UTF-8"."\n";
$headers.="From: $name <$email>"."\n";

mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $text, $headers, '-fnoreply@domain.com'); 

Если я использую специальные символы Å Ä Ö из шведского алфавита, они не кодируются должным образом, поэтому они появляются как ö for ö.

Однако этого не произойдет, если я изменю переменную $to на электронную почту учетной записи gmail, тогда они будут показаны правильно.

Кто-нибудь есть идеи?

Спасибо

UPDATE:

Когда я echo $name, имя отображается правильно, в utf8, со всеми специальными символами, которые хорошо отображаются.

1 Ответ

1 голос
/ 24 декабря 2010

Может быть, вам следует преобразовать входной текст в UTF-8, используя iconv, я думаю, что GMail сделает это за вас.

$text =  iconv(mb_detect_encoding($text), "UTF-8//IGNORE//TRANSLIT", $text)

Также убедитесь, что ваша страница PHP - Unix UTF-8.* ИЛИ

Вы можете использовать phpMailer или libmail

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...