За последние 24 часа нас посетили 38982 программиста и 1284 робота. Сейчас ищут 1011 программистов ...

Проблема с кодировкой email письма

Тема в разделе "Прочие вопросы по PHP", создана пользователем zahermaher, 3 июн 2015.

  1. zahermaher

    zahermaher Новичок

    С нами с:
    27 сен 2014
    Сообщения:
    169
    Симпатии:
    14
    ЗДравствуйте. отправляю письмо с вложениями файлов , тема и имя отправителя показываются нормально.
    Но текст сообщения :
    Код (PHP):
    1.  $multipart .= '<p>Текст много букв</p>'."\n"; 
    ,
    приходит крокозябрами.
    Хотя тема и имя отправителя и названия файлов вложений тоже русский текст,но крокозябрами приходит только сообщение.

    Пробовал разные кодировки но решения не нашел.
    Надеюсь на вашу помощь!

    Вот весь код:
    Код (PHP):
    1.   header("Content-Type: text/html; charset=utf-8");
    2.   
    3.   $m_boundary = "---"; //Разделитель
    4.   /* Заголовки */
    5.   $headers = "From: Отправитель <info@site.com>\n";
    6.   $headers .= "MIME-Version: 1.0;\n";    
    7.   $headers .= "Content-Type: multipart/mixed; boundary=\"$m_boundary\"";
    8.   $multipart = "--$m_boundary\n";
    9.   /* Присоединяем текстовое сообщение */
    10.   $multipart .= "Content-type: text/html; charset='utf-8'\n";
    11.   $multipart .= "Content-Transfer-Encoding: quoted-printablenn";
    12.   $multipart .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($kp_name)."?=\n\n";
    13.   $multipart .= '
    14.      <p>Текст много букв</p>'."\n";
    15.   foreach ($kp_name as $key => $filename){
    16.   $multipart .= "--$m_boundary\n";
    17.   $kp_file = fopen($filename, "r"); //Открываем файл
    18.   $kp_data = fread($kp_file, filesize($filename)); //Считываем весь файл
    19.   fclose($kp_file); //Закрываем файл
    20.   
    21.    $filename1=array_pop(explode('/',$filename));
    22.   /* Добавляем тип содержимого, кодируем текст файла и добавляем в тело письма */
    23.   $multipart .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode($filename)."?=\n";
    24.   $multipart .= "Content-Transfer-Encoding: base64\n";
    25.   $multipart .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($filename1)."?=\n\n";
    26.   $multipart .= chunk_split(base64_encode($kp_data))."\n";
    27.   }
    28.   $multipart .= "--".$m_boundary ."--\n";
    29.  
    30.   mail($mymail, $kp_thm, $multipart, $headers); //Отправляем письмо 
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Можно воспользоваться PHPMailer