PEAR && Mail_Mime

oksale

Новичок
PEAR && Mail_Mime

Через класс Mail_Mime отправляю почту. Все работает, но заголовок выводится в непонятной кодировке. Помогите разобраться.

Код:
PHP:
include('pear/Mail.php'); 
include('pear/Mail/mime.php'); 

$text = 'Контактное лицо: '.$_POST['name']."\n\nСообщение:\n".$_POST['text']; 

$crlf = "\r\n"; 
$hdrs = array( 
'Content-Type' => 'text/plain; charset=iso-8859-1',
'From' => $_POST['mail'], 
'Subject' => $_POST['header']
); 
$mime = new Mail_mime($crlf); 
$mime->setTXTBody($text); 

$hdrs = $mime->headers($hdrs); 
$mail =& Mail::factory('mail'); 
$mail->send('***@mail.ru', $hdrs, $mime->get());
 

MiRacLe

просто Чудо
PHP:
<?php
      $params = array('head_charset' => 'iso-8859-1',  'text_charset' => 'iso-8859-1', 'text_encoding' => '8bit'); 
      class Mail_mime_Ex extends Mail_mime
      {      
        function _encodeHeaders($input)
        {
                    foreach ($input as $hdr_name => $hdr_value)
                    {
                        if (preg_match('/(\w*[\x80-\xFF]+\w*)/', $hdr_value))
                        {
                            $replacement = preg_replace('/([\x80-\xFF])/e', '"=" . strtoupper(dechex(ord("\1")))',$hdr_value);
                            $input[$hdr_name] = '=?' .$this->_build_params['head_charset'] . '?Q?' . $replacement . '?=';
                        }
                    }
            
                    return $input;        
        }
      }
// Дальше вместо $mime = new Mail_mime($crlf) пишешь:

$mime = new Mail_mime_Ex($crlf);
// ........ 
$mail->send('***@mail.ru', $hdrs, $mime->get($params)); 
?>
 

valerchik

Guest
у меня все равно тема пишется закорючками :(
 

valerchik

Guest
Автор оригинала: MiRacLe
valerchik
в какой кодировке отправляешь письма ?
пробелы между русскими буквами куда-то деваются...
я вместо них подчеркивания ставлю...
при отправке они сами на пробелы заменяются...
все ок, только вот проблема теперь, как подчеркивание отправить в сабджекте :)
 
Сверху