Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кодировка тела imap
 
 автор: adebizi   (15.03.2013 в 09:42)   письмо автору
 
 

Помогите получить правильную кодировку для тела сообщения используя imap
Мои догадки, что простые письма получается правильно вывести, а состоящие из частей не кодируются


Примеры неправильной кодировки:
письмо 1: "пёп╡п╟п╤п╟п╣п╪я▀п╣ п■п╟п"
письмо 2: "0KHQv9Cw0YHQuNCx0L4sINCQ0LvQtdC90LA hD"
были и такие =C=D=C

Чем пытаюсь вытащить письма
<?php
header
('Content-Type: text/html; charset=utf-8');
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>
</title>
</head>
<body>
<?php

$app_col 
1;

$imap imap_open("{imap.yandex.ru:143/imap/notls}INBOX""test""12345");

for (
$i 1$i <= 20$i++){

        
$header imap_header($imap$i); 
        
$body imap_fetchbody($imap$i"1.1"); 

        if (
$body == ""){ 
            
$body imap_fetchbody($imap$i"2.1.1"); 

        
$email[$i]['from'] = $header->from[0]->mailbox.'@'.$header->from[0]->host
        
$email[$i]['fromaddress'] = $header->from[0]->personal
        
$email[$i]['to'] = $header->to[0]->mailbox
        
$email[$i]['subject'] = $header->subject
        
$email[$i]['reply_to'] = $header->reply_to[0]->mailbox.'@'.$header->reply_to[0]->host
        
$email[$i]['message_id'] = $header->message_id
        
$email[$i]['date'] = $header->udate
        
$email[$i]['body'] = $body

       
// $email[$i]['body'] = htmlspecialchars(base64_decode($body)); 

        
$from $email[$i]['fromaddress']; 
        
$from_email $email[$i]['from'];

    
$elements imap_mime_header_decode($email[$i]['subject']);
    
$elements_body imap_mime_header_decode($email[$i]['body']);
    
$elements_fromaddress imap_mime_header_decode($email[$i]['fromaddress']);

    
$tmp_char $elements[0]->charset;
    
$tmp_body_char $elements_body[0]->charset;
    
$tmp_texx $elements[0]->text;
    
$tmp_body $elements_body[0]->text;
    
$tmp_fromaddress $elements_fromaddress[0]->text;


echo 
$i."<br>";

    
$tmp iconv(strtolower($tmp_char), 'UTF-8'$tmp_texx);
    echo 
"subject:  ".$tmp."<br>";
    echo 
"tmp_char: ".$tmp_char."<br>";

//".$tmp_char." ".$email[$i]['subject']."

    
$struct imap_fetchstructure($imap,$i);
/*
echo "<pre>";
print_r($struct);
echo "</pre>";
*/
    
$test_body imap_fetchbody($imap,$i,1);

    if (
trim($struct->encoding)=='4')
        
$test_body imap_qprint($test_body);
    if (
trim($struct->encoding)=='3')
        
$test_body imap_base64($test_body);
    
$parms $struct->parameters[0];
    
$part $struct->parts[0];

    
$test_body mb_convert_encoding ($test_body'UTF-8'$tmp_char);

echo 
"<span style='color:red;'>".htmlspecialchars($test_body)."</span><br><br><br>";

}

imap_close($imap);

?>

</body> 
</html> 

  Ответить  
 
 автор: adebizi   (18.03.2013 в 13:07)   письмо автору
 
   для: adebizi   (15.03.2013 в 09:42)
 

ХЕЛП!!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования