Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2013, 01:02   #1
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию траблы с кодировкой

открываю письмо, а вместо имени - иероглифы, текст и тема отображается нормально. что не так то?
PHP код:
<?php
function kmail$from$to$subj$text$filename) {
$f fopen($filename,"rb");
$un strtoupper(uniqid(time()));
$headers "Content-Type: text/html; charset=utf-8 \r\n";
$headers .= "From: $from\n";
$headers .= "To: $to\n";
$headers .= "Subject: $subj\n";
$headers .= "X-Mailer: world-blog.ru\n";
$headers .= "Reply-To: $from\n";
$headers .= "Mime-Version: 1.0\n";
$headers .= "Content-Type:multipart/mixed;";
$headers .= "boundary=\"----------".$un."\"\n\n";
$zag "------------".$un."\n";
$zag .= "Content-Type:text/html; charset=utf-8 \r\n";
$zag .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
$zag .= "------------".$un."\n";
$zag .= "Content-Type: application/octet-stream;";
$zag .= "name=\"".basename($filename)."\"\n";
$zag .= "Content-Transfer-Encoding:base64\n";
$zag .= "Content-Disposition:attachment;";
$zag .= "filename=\"".basename($filename)."\"\n\n";
$zag .= chunk_split(base64_encode(fread($f,filesize($filename))))."\n";
//$zag .=base64_encode($zag)."\n";
return @mail("$to""$subj"$zag$headers);
}
// от кого почта
$from $_POST['name'].' '.'<'.$_POST['ot'].'>';
// для кого почт
$to $_POST['kuda'];
// заголовок письма
$title $_POST['tema'];
// текст письма
$text $_POST['text'];
// файл вложения
$file "/var/www/spbiphone/data/www/spbiphone.ru/123.txt";
kmail $from$to$title$text$file);
echo (
"Ок");
?>
megostudent вне форума Ответить с цитированием
Старый 04.03.2013, 04:27   #2
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

PHP код:
$from '=?UTF-8?B?'.base64_encode($_POST['name']).'?= <'.$_POST['ot'].'>';
$title '=?UTF-8?B?'.base64_encode($_POST['tema']).'?='
RFC2047
RFC2045
По-русски - тебе нужно закодировать все юникодные символы в заголовке посредством base64_encode или через imap_8bit (во втором случае вместо ?B? нужно поставить ?Q?)
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Траблы с установкой Andrey770 Компоненты Delphi 0 01.03.2012 19:33
Траблы с хуком qazwar Visual C++ 0 09.02.2012 11:14
Траблы с инетом KOJI Свободное общение 7 24.11.2011 20:17
траблы с кодом на C -COREY- Помощь студентам 1 12.12.2009 21:50
Траблы с видеообеспечением PA3HOE Компьютерное железо 2 18.11.2009 22:44