Форум: "Начинающим";
Текущий архив: 2007.09.23;
Скачать: [xml.tar.bz2];
ВнизПолучение почты в Delphi Найти похожие ветки
← →
Anatoly Podgoretsky © (2007-08-28 10:55) [40]
> Если указать только имя то в папку с проектом,
Заблуждение
← →
DimOk © (2007-08-28 11:00) [41]
> Заблуждение
Но я все равно указываю путь куда его сохранять, а имя файла у меня состоит из кракозябр, поэтому он и не сохраняется - я так думаю, видимо проблемма в кодировке.....
← →
DimOk © (2007-08-28 11:02) [42]
> Как и предполагалось - обманывал нас.
Только вот имя файла не совсем на русском языке - отсюда и ошибка при сохранении (я так думаю)
← →
DimOk © (2007-08-28 11:07) [43]
> Только вот имя файла не совсем на русском языке - отсюда
> и ошибка при сохранении (я так думаю)
Да. С англ. названиями все просто замечательно, а вот русские имена не сохраняет.
← →
DimOk © (2007-08-28 11:13) [44]
> А чего смотреть и так ясно, что он равен информации в письме,
> если она прописана.
> Его возможно надо обработать до допустимого и указать куда
> сохранять, как это делают почтовики, а не а бы куда и черт
> знает что записать.
Да вы правы, сейчас попробовал - не сохраняет пишет eerror saving attachment.
Но как быть с русскими названиями файлов - AttacmentEncoding...? Или что то другое?
← →
umbra © (2007-08-28 11:15) [45]
> Только вот имя файла не совсем на русском языке
что-то наподобие этого:
=?koi8-r?B?09fJztjJLnJ0Zg==?=
← →
DimOk © (2007-08-28 11:16) [46]
> что-то наподобие этого:
> =?koi8-r?B?09fJztjJLnJ0Zg==?=
Да. только расширение правильно показывает :)
← →
umbra © (2007-08-28 11:19) [47]
> только расширение правильно показывает
что-то не верится. Показывает или все или ничего.
← →
DimOk © (2007-08-28 11:21) [48]
> что-то не верится. Показывает или все или ничего.
В отладчекн в Вач Виндов MyMessage.MessageParts.Items[i]).FileName Value = вот типо этого r?B?09fJztjJLnJ0Zg.zip
← →
umbra © (2007-08-28 11:24) [49]
> r?B?09fJztjJLnJ0Zg.zip
полный бред. такого быть не может.
← →
DimOk © (2007-08-28 11:26) [50]
> полный бред. такого быть не может.
Сейчас дословно напишу
← →
Anatoly Podgoretsky © (2007-08-28 11:28) [51]
> > Как и предполагалось - обманывал нас.
>
> Только вот имя файла не совсем на русском языке - отсюда
> и ошибка при сохранении (я так думаю)
Ты не здесь обманывал, речи о сохранение и быть не могло, у тебя даже программа не компилировалась!
← →
DimOk © (2007-08-28 11:29) [52]
> > r?B?09fJztjJLnJ0Zg.zip
>
> полный бред. такого быть не может.
"=?koi8-r?B?99nH0tXay8E=?=.xml"
имя файла Выгрузка.xml
← →
Anatoly Podgoretsky © (2007-08-28 11:30) [53]> umbra (28.08.2007 11:24:49) [49]
Продолжает лапшу на уши вешать.
← →
DimOk © (2007-08-28 11:31) [54]
> Ты не здесь обманывал, речи о сохранение и быть не могло,
> у тебя даже программа не компилировалась!
Ошибаетесь, компилировалась и текты ошибок были из RUN Time
← →
umbra © (2007-08-28 11:33) [55]
> омпилировалась и текты ошибок были из RUN Time
вот это:
> Пишет - ундекларе идентифер Items[i]
точно не из рантайм.
← →
DimOk © (2007-08-28 11:33) [56]
> Продолжает лапшу на уши вешать.
У меня файлы уже сохраняются только с англ. названиями
По поводу компиляции я даже и не спрашивал..... если что. А вопрос как "русские" файлы сохранить.
← →
DimOk © (2007-08-28 11:38) [57]К стати большое спасибо umbra за то что помог и помогает разбираться с этой задачей, но пока она выполняется до конца (русские имена так и не сохраняются)........:(
← →
DimOk © (2007-08-28 11:43) [58]
> точно не из рантайм.
Извеняюсь в отладчике, но при компиляции не ругался.
← →
DimOk © (2007-08-28 11:46) [59]Я уже на 100% уверен что дело в имени файла т.к. оно содержит спецсимволы (если прикрепленный файл на русском языке)
← →
umbra © (2007-08-28 12:05) [60]
> =?koi8-r?B?99nH0tXay8E=?=
после первого знака вопроса - кодировка названия
после второго - способ кодировки для передачи, В - Base64, Q - quoted-printable
после третьего и до последнего - само название. Чтобы его восстановить, надо перевести из Base64 - получится название в koi8-r. Затем надо из koi8-r перевести в windows-1251 (если надо)
← →
DimOk © (2007-08-28 12:10) [61]
> после первого знака вопроса - кодировка названия
> после второго - способ кодировки для передачи, В - Base64,
> Q - quoted-printable
> после третьего и до последнего - само название. Чтобы его
> восстановить, надо перевести из Base64 - получится название
> в koi8-r. Затем надо из koi8-r перевести в windows-1251
> (если надо)
Это все можно зделать в Delphi?
← →
DimOk © (2007-08-28 12:30) [62]
> Это все можно зделать в Delphi?
Вернее в каком направлении капать.
← →
umbra © (2007-08-28 12:45) [63]для Base64 есть, например,
TIdDecoderMIME
или функцияDecodeString
из модуляEncdDecd.pas
для koi8-r - полно реализаций на делфи в интернете, да и свою написать можно.
← →
DimOk © (2007-08-28 12:50) [64]
> для Base64 есть, например, TIdDecoderMIME или функция DecodeString
> из модуля EncdDecd.pas
> для koi8-r - полно реализаций на делфи в интернете, да и
> свою написать можно.
Большое спасибо за помощь. :)
← →
DimOk © (2007-08-28 13:28) [65]file_name := IdDecoderMIME1.DecodeString(String(TIdAttachment(MyMessage.MessageParts.Items[i] ).FileName));
Можно ли так делать, что то ошибочка вылетает: Uneven size in decode ToStream
← →
umbra © (2007-08-28 13:31) [66]
> Можно ли так делать,
нельзя. декодировать надо только само название, а не все значение FileName. См. [60]
← →
DimOk © (2007-08-28 13:34) [67]
> нельзя. декодировать надо только само название, а не все
> значение FileName. См. [60]
Тогда вопрос, как эту строку можно разобрать по разделителям, есть ли оналог функции Delin из VB или здесь другой подход нужен?
← →
DimOk © (2007-08-28 13:37) [68]
> есть ли оналог функции Delin из VB или здесь другой подход
> нужен?
аналог функции Delim :) извеняюсь
← →
DimOk © (2007-08-28 15:03) [69]
> нельзя. декодировать надо только само название, а не все
> значение FileName. См. [60]
Получилось, достать имя файла, но при декодировании всеравно выходит чушь, но теперь без спец символов и сохраняеся, т.е. я так думаю надо перегнать строку в windows-1251, если это так, то как это зделать? Дайте напрвление пожалуйсто.
← →
umbra © (2007-08-28 15:09) [70]
> надо перегнать строку в windows-1251,
надо
> Дайте напрвление пожалуйсто.
http://ru.wikipedia.org/wiki/%D0%9A%D0%9E%D0%98-8
Берете каждый символ строки и, если его код больше 127 ($79), заменяете на нужный символ из windows-1251
← →
DimOk © (2007-08-28 15:18) [71]
> http://ru.wikipedia.org/wiki/%D0%9A%D0%9E%D0%98-8
>
> Берете каждый символ строки и, если его код больше 127 ($79),
> заменяете на нужный символ из windows-1251
Спасибо.
Всем большое спасибо. Если эта тема больше ни каму не интересна предлогаю ее закрыть.
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.09.23;
Скачать: [xml.tar.bz2];
Память: 0.58 MB
Время: 0.051 c