Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Кодировка в функции mail (https://javascript.ru/forum/server/13176-kodirovka-v-funkcii-mail.html)

Golovastik 18.11.2010 20:26

Кодировка в функции mail
 
При загрузке данного скрипта на платный хостинг, приходят письма в абракатабре, хоть и указал ютф8 ,что можно сделать?

<?php 
if(isset($_POST['name'])) $name = $_POST['name'];
if(isset($_POST['email'])) $email = $_POST['email'];
if(isset($_POST['text_otpravka'])) $text_otpravka = $_POST['text_otpravka'];

$res = mail("name@mail.ru","Отправка с сайта","Имя автора письма:
 $name \n Эл.почта посетителя: $email \n
 Текст письма посетителя: \n $text_otpravka","Content-type:text/plain; charset = utf8");
 
if($res==true) {echo 'Ваше сообщение успешно отправлено!';} 

?>

monolithed 18.11.2010 21:12

Цитата:

Сообщение от Golovastik
$res = mail("name@mail.ru","Отправка с сайта","Имя автора письма:
$name \n Эл.почта посетителя: $email \n
Текст письма посетителя: \n $text_otpravka","Content-type:text/plain; charset = utf8");

Лучше так:
$headers = "$from\r\n";
$headers .= "Content-type: text/plain; charset=$send_charset\r\n";
$headers .= "Mime-Version: 1.0\r\n";


Отностельно кодировки:
//Использовать iconv();
function header_encode($string, $data_charset, $send_charset) {
  if($data_charset != $send_charset) {
    $string = iconv($data_charset, $send_charset, $string);
  }
  return '=?' . $send_charset . '?B?' . base64_encode($string) . '?=';
}

$to = header_encode($name_to, $data_charset, $send_charset);

или
//Преобразовать строку из одной кириллической кодировки в другую:
$subject = '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject, "w","k")).'?=';  //$subject - второй аргумент mail();


Часовой пояс GMT +3, время: 21:48.