![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
Rodeon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 28.8.2008 Где: Россия, Ухта Репутация: нет Всего: нет |
Здравствуйте!
Почту всю принимала программа, пока вложенный файл в одном из писем не был на русском языке! Большая часть кода отсюда За что спасибо Snowy Проверяю при помощи:
Файлы аттача на английском пишутся и сохраняються нормально, на русском в memo не заносится имя файла (такое ощущение что отобразить не может, пустую строку заносит) и файл сам тоже не сохраняеться. Я так понимаю надо скорее всего конвертировать имена файлов, которые на русском, только с какой кодировки и в какую!? Спасибо заранее за ответ! Это сообщение отредактировал(а) Rodeon - 6.6.2010, 15:28 |
|||
|
||||
Rodeon |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 28.8.2008 Где: Россия, Ухта Репутация: нет Всего: нет |
Отвечаю сам себе!
Так как имя файла получаю вида =?koi8-r?Q?=F0=D2=C9=CC_=CB_=C4=CF=C7=CF=D7_=EB=F2=F3_2010=C7.xls?= или =?koi8-r?B?0NLFxNPUwdfMxc7JxSDOwSDQ0sHL1MnL1SDX1M/Sz8UuZG9j?= или =?UTF-8?B?0KDQtdGG0LXQvdC30LjRjyDQrtC60LguZG9j?= через if pos>0 и case ищу строку ?koi8-r?Q? или ?koi8-r?B? первый случай текст koi8-r Quoted-Printable для него использую сперва:
из комплекта indy, а потом
Нашел на форуме, автору спасибо! Во втором случае, если ?koi8-r?B? т.е. koi8-r base64 сперва использую
а потом снова функцию KoiToWin описанную чуть выше. изполученых имен файлов удаляю =?koi8-r?Q? или =?koi8-r?B? и в конце 2 символа а именно ?=, все получил имя файла, с которым теперь можно сохранять. По поводу =?UTF-8?B?, сначала натравливаю функцию Decode64, а потом стандартную Utf8toansi - на выходе имя файла на русском. Удаляю символы спереди и сзади и сохраняю вложение. Ура. Пока все работает. Это сообщение отредактировал(а) Rodeon - 6.6.2010, 14:21 |
||||||
|
|||||||
Rodeon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 28.8.2008 Где: Россия, Ухта Репутация: нет Всего: нет |
Очередная проблемма возникла когда вложенние имеет длинное имя, типа
=?koi8-r?B?0M/Mz9bFzsnFIM/CIM/Sx8HOydrBw8nJIMkg0NLPx9LBzc3BINDSwQ==?= =?koi8-r?B?y9TJy8kg5+31IPXQ0sHXzMXOycUuZG9j?= т.е. имя состоит из двух частей! фиг знает как убрать это ограничение!? Пока что делаю так! Маленько переделал код Snowy Отсюда
Если есть какие соображения как убрать это ограничение, буду рад! Это сообщение отредактировал(а) Rodeon - 6.6.2010, 15:28 |
|||
|
||||
Rodeon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 28.8.2008 Где: Россия, Ухта Репутация: нет Всего: нет |
Утомил меня Indy своими ошибками(uneven size in decodetostream,
range check error, max line length exceeded и т.д.) Причем зависимость появления ошибок так установить и не удалось. Перепробовал за 1.5 дня около 10 компонентов для работы с почтой, остановился на SakEmail components так как даже в демо по работе с почтой есть все что мне нужно было, поддержка руского языка в прикрепленных файлах, прогрессбар общий и для каждого письма в отдельности. Осталось доделать пример и можно пользоваться! Если кому надо, то компонент прикрепил! Это сообщение отредактировал(а) Rodeon - 7.6.2010, 01:14 Присоединённый файл ( Кол-во скачиваний: 51 ) ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |