URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 72138
[ Назад ]

Исходное сообщение
"Заголовки koi8-r и uebimiau"

Отправлено Анди , 12-Фев-07 15:46 
Есть известная проблема в распознавании webmail-системы uebimiau, далее telaen кодировки заголовков, типа ..?koi8-r?..
Система не видит этого обозначения и выдает в заголовках кракозяблы. Причем это касается не только заловка письма, но и заголовков вложений, вследствие чего эти вложения невозможно просмотреть из web-интерфейса.
Такая ошибка касается всех сообщений, отправленных некоторыми почтовыми клиентами, в том числе и Outlook.

Методом художественного свиста установлено, что если в файле-майлбоксе '/var/mail/пользователь' произвести замену всех 'koi8-r' на 'KOI8-R', то проблема решается сама собой. То есть  uebimiau (telaen) чувствует при интерпретации регистр обозначения кодировки заголовка.

Так как я не очень силен в РНР, то не смог обнаружить решение данной проблемы в коде самого вебмайла, а запустил с помощью cron и awk скрипт замены в файлах '/var/mail/*' символов 'koi8-r' на 'KOI8-R' с периодичностью в полчаса. Ясно, что это не совсем правильное решение проблемы, и догадываюсь, что есть решение более красивое.

Что скажут по этому поводу гуру, которые эту проблему решали? Если есть возможность подправить код, либо настройки uebimiau (telaen)? Может есть возможность произвести махинации c procmail, чтобы он складывал в майлбоксы уже исправленные файлы?

Буду очень благодарен, если подскажете как с этим справиться.


Содержание

Сообщения в этом обсуждении
"Заголовки koi8-r и uebimiau"
Отправлено Анди , 13-Фев-07 16:03 
Ндя.. А в ответ тишина..

"Заголовки koi8-r и uebimiau"
Отправлено lavr , 13-Фев-07 16:18 
>Ндя.. А в ответ тишина..

видать мало кто их использует...

Не нужно быть большим спецом в PHP, чтобы найти какие функции php используются для
imap или pop3 и далее найти разбор mime, начать можно с headers - найти и конвертнуть
в строке Subject koi8 не должно быть сложно, imho


"Заголовки koi8-r и uebimiau"
Отправлено xWAR , 30-Мрт-07 14:45 
Сталкнулся с этой же проблемой --решил так

В class.telaen.php изменил строку до такой

if(ereg("KOI8", $subject) && ereg("koi8", $subject)) $result = convert_cyr_string($result, "k", "w");

вот осталась проблема с utf8 ((


"Заголовки koi8-r и uebimiau"
Отправлено xWAR , 30-Мрт-07 16:57 
if(ereg("KOI8", $ctype) or ereg("koi8", $ctype))
А это тело нормально переконвертирует

Хотя логика в предыдущем посте так и не понятна))
Условие должно быть ИЛИ а не И ПО ЛОГИКЕ))


"Заголовки koi8-r и uebimiau"
Отправлено Анди , 01-Апр-07 21:23 
> if(ereg("KOI8", $ctype) or ereg("koi8", $ctype))
>А это тело нормально переконвертирует

Спасибо заучастие, но уже разобрался сам.. Немного по другому - просто исправил эту же строку таким образом:

if(ereg("KOI8", $subject) && ereg("koi8", $subject)) $result = convert_cyr_string($result, "k", "w");

Проблема решилась.


"Заголовки koi8-r и uebimiau"
Отправлено Анди , 01-Апр-07 21:27 
>> if(ereg("KOI8", $ctype) or ereg("koi8", $ctype))
>>А это тело нормально переконвертирует
>
>Спасибо заучастие, но уже разобрался сам.. Немного по другому - просто исправил
>эту же строку таким образом:
>
>if(ereg("KOI8", $subject) && ereg("koi8", $subject)) $result = convert_cyr_string($result, "k", "w");
>
>Проблема решилась.

Сори, не то скопировал - вот правильная строка:

if(ereg("KOI8", "koi8", $subject)) $result = convert_cyr_string($result, "k", "w");


"Заголовки koi8-r и uebimiau"
Отправлено Анди , 02-Апр-07 15:07 
>Сталкнулся с этой же проблемой --решил так
>
>В class.telaen.php изменил строку до такой
>
>if(ereg("KOI8", $subject) && ereg("koi8", $subject)) $result = convert_cyr_string($result, "k", "w");
>
>вот осталась проблема с utf8 ((

Проблема с UTF8 пропала после локализации всей операционной системы



"Заголовки koi8-r и uebimiau"
Отправлено Кирилл Макухин , 22-Июн-07 16:05 
Ну вы и шаманы, ребята!!! Там всего-навсего ошибка в class.uebimiau.php, они повторно перекодируют сабжект. В строке примерно 4926 надо закомментировать оператор:

// if($charset != $this->charset) $mystring = $this->convert_charset($mystring, $charset, $this->charset);

Хотя путь с кроном, конечно же изящнее! :)


>>Сталкнулся с этой же проблемой --решил так
>>
>>В class.telaen.php изменил строку до такой
>>
>>if(ereg("KOI8", $subject) && ereg("koi8", $subject)) $result = convert_cyr_string($result, "k", "w");
>>
>>вот осталась проблема с utf8 ((
>
>Проблема с UTF8 пропала после локализации всей операционной системы



"Заголовки koi8-r и uebimiau"
Отправлено Анди , 23-Июн-07 18:51 
К сожалению в telaen ваш вариант не прокатил. Если эту строку закомментировать, интерфейс вообще перестает перекодировать кириллицу. Работает ранее найденное решение.