imap темы писем

Статус
В этой теме нельзя размещать новые ответы.

qwelp

Новичок
imap темы писем

На форуме нашел много подобных тем но не одно решение у меня не заработало.

Вывожу темы почтовых сообщений. руский язык не понимает, а с английским все ок.
Понимаю что проблема в кодировке. может кто подскажет быстрее решение.
Заранее спасибо.

вот вид такой у темы

4)17-Apr-2007 =?koi8-r?Q?=F7=CC=C1 =?koi8-r?Q?Re=3A_test?= (1083 chars)

Вот сам код

PHP:
if($imap)
    {
      echo "<table width=$table_width' cellspacing='0'
                   cellpadding='6'  border='0'>";

      $headers = imap_headers($imap);
      
      $messages = sizeof($headers);
      for($i = 0; $i<$messages; $i++)
      {
        echo '<tr><td bgcolor = "';
        if($i%2)
          echo '#ffffff';
        else 
          echo '#ffffcc';
        echo '"><a href="index.php?action=view-message&messageid='.($i+1).'">';
        echo $headers[$i];
        echo "</a></td></tr>\n";
      }
      echo '</table>';
    }
 

Vallar_ultra

Любитель выпить :)
Фанат
пусть хоть про кодировки почитает. а так понятно что просто ему влом было поиском пользоваться.
 

Фанат

oncle terrible
Команда форума
а давай ты не будешь писать только потому, что тебе хочется написать, все равно что?
а будешь немного себя сдерживать?
 

qwelp

Новичок
Received: from spooler by localhost (Mercury/32 v4.01b); 17 Apr 2007 05:37:54 +0400
X-Envelope-To: <[email protected]>
Return-path: <[email protected]>
Received: from f7.mail.ru (194.67.57.37) by localhost (Mercury/32 v4.01b) with ESMTP ID MG000002;
17 Apr 2007 05:37:48 +0400
Received: from mail by f7.mail.ru with local
id 1HdcdW-000Hmx-00
for [email protected]; Tue, 17 Apr 2007 05:37:38 +0400
Received: from [213.232.196.185] by win.mail.ru with HTTP;
Tue, 17 Apr 2007 05:37:38 +0400
From: =?koi8-r?Q?=F7=CC=C1=C4=C9=CD=C9=D2_=E2=D5=CE?= <[email protected]>
To: [email protected]
Subject: =?koi8-r?Q?Re=3A_test?=
Mime-Version: 1.0
X-Mailer: mPOP Web-Mail 2.19
X-Originating-IP: [213.232.196.185]
Date: Tue, 17 Apr 2007 05:37:38 +0400
In-Reply-To: <6752CE45E4@localhost>
References: <6752CE45E4@localhost>
Reply-To: =?koi8-r?Q?=F7=CC=C1=C4=C9=CD=C9=D2_=E2=D5=CE?= <[email protected]>
Content-Type: text/plain; charset=koi8-r
Content-Transfer-Encoding: 8bit
Message-Id: <[email protected]>
X-PMFLAGS: 34078848 0 5 YP9H6PE8.CNM

-~{}~ 19.04.07 03:00:

Возможно я не все решения нашел и также может неправильно применил. опыта маловато в php. разбираюсь по немногу. помогите очень нужно решить этот вопрос.
 

qwelp

Новичок
не как не выходит то просто выводит arrary. помоги совместить с кодом. хотябы пример
 

qwelp

Новичок
как бы я не пытался или полно ошибок или кодировка не так меняется. мне бы хотябы пример по какой схеме делать
 

Гравицапа

elbirret elcno
qwelp
Из тебя что всю информацию вытягивать надо? Тебе сложно нормально было ответить на мои вопросы?
 

qwelp

Новичок
Вот код:
$headers = imap_headers($imap);

$messages = sizeof($headers);

for($i = 0; $i<$messages; $i++)
{
echo '<tr><td bgcolor = "';
if($i%2)
echo '#ffffff';
else
echo '#ffffcc';
echo '"><a href="index.php?action=view-message&messageid='.($i+1).'">';
echo imap_mime_header_decode($headers[$i]);
echo "</a></td></tr>\n";
}
echo '</table>';
}

Вот Вывод:

Array
Array
Array
Array
Array
Array
Array
Array
 

Гравицапа

elbirret elcno
qwelp
Замечательно,
PHP:
echo '<pre>';
var_dump($headers);
echo '</pre>';
ты сделать не догадался, что бы просмотреть что собой этот массив представляет?

P.S. Блин, про var_dump($headers); конечно имелось в виду...
 

qwelp

Новичок
выводит 8 раз подряд - int(8)
У меня в ящике восемь писем. этот массив для того чтобы узнать какой номер у письма

-~{}~ 19.04.07 08:57:

Вот 8 раз выводит этот код

array(8) {
[0]=>
string(82) " 1)16-Apr-2007 =?koi8-r?Q?=F7=CC=C1 =?koi8-r?Q?Re=3A_fsdfsdfs (1197 chars)"
[1]=>
string(80) " 2)17-Apr-2007 =?koi8-r?Q?=F7=CC=C1 =?koi8-r?Q?Re=3A_test?= (1084 chars)"
[2]=>
string(80) " 3)17-Apr-2007 =?koi8-r?Q?=F7=CC=C1 =?koi8-r?Q?Re=3A_test?= (1086 chars)"
[3]=>
string(80) " 4)17-Apr-2007 =?koi8-r?Q?=F7=CC=C1 =?koi8-r?Q?Re=3A_test?= (1083 chars)"
[4]=>
string(80) " 5)17-Apr-2007 =?koi8-r?Q?=F7=CC=C1 =?koi8-r?Q?Re=3A_test?= (1081 chars)"
[5]=>
string(80) " 6)17-Apr-2007 =?koi8-r?Q?=F7=CC=C1 =?koi8-r?Q?Re=3A_test?= (1087 chars)"
[6]=>
string(82) " 7)17-Apr-2007 Mail Delivery System Delivery failure notifica (1660 chars)"
[7]=>
string(82) " U 8)19-Apr-2007 =?koi8-r?Q?=F7=CC=C1 =?koi8-r?Q?=F0=D2=C9=D7=C (1187 chars)"
}
 

Гравицапа

elbirret elcno
qwelp
Ок. Забудь про функцию imap_headers. Она плохо описана и неудобна в использовании.
Предложения:
1. Для получения списка номеров писем и сортировки используй функцию
[m]imap_sort[/m],а для получения заголовков [m]imap_headerinfo[/m], потом заголовки нужно будет декодировать.

2. Воcпользуйся готовым решением типа http://pear.php.net/package/Mail_IMAPv2, там в мануале или на сайте разработчика даже есть готовый каркас для почтового интерфейса.

3. Не изобретай велосипед и возьми готовый почтовик типа Horde.
 

Фанат

oncle terrible
Команда форума
qwelp
НУ НЕУЖЕЛИ не видна система во всех этих заголовках?
что в них указан способ кодирования и кодировка? и все это разделено вопросительными знаками?

Ну чуть внимательнее можно посмотреть на использующиеся данные? И просто немного подумать, забыв на время о том, что существуют крутые библиотеки, которые все за тебя делают?
Ну хотя бы просто для тренировки или для удовольствия попробовать решить простую задачку, а?
 

qwelp

Новичок
с кодировками первый раз столкнулся если бы хотябы пример был как решить задачу
 

Фанат

oncle terrible
Команда форума
ага.
расскажи ещё, что ты не знал, что в интернете есть куча кодировок русского языка.
и какие в пхп есть функции для перекодировки

при чем здесь, мля, кодировки? когда сначала тебе надо распарсить строку с заголовком.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху