error saving attachment при работе с Indy в Lazarus

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
AlexL
незнакомец
Сообщения: 2
Зарегистрирован: 14.08.2011 15:41:53

error saving attachment при работе с Indy в Lazarus

Сообщение AlexL »

У меня возникла проблема при работе с Indy в Lazarus: при попытке сохранения аттачмента в файл возникает EIdException с сообщением error saving attachment.
Я пытался написать совсем простую программу (для теста), которая открывает файл *.eml и сохраняет из него аттачмент в файл. Всё работает нормально до момента сохранения аттачмента.
Для сохранения аттачмента использую код взятый из примера Indy_10_MailClient:
TIdAttachmentMemory(Msg.MessageParts.Items[intMSGIndex]).SaveToFile(filename);
Именно на этой строке возникает exception.

Я использую при разработке:
Linux - Ubuntu 10.04
Freepascal 2.4.2
Lazarus 0.9.30
Indy 10.2.0.3

Заранее благодарю за любую помощь.
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

У меня была такая фигня, как выяснилось Indy не нравились непечатные символы в имени файла. Я лечил это обработкой filename и заменой на пробелы. Это было в windows.
Если не поможет сделайте имя файла без пробелов. И только английскими буквами.
И учтите , что в винде имена файлов в кодировке cp1251, а в Lazarus в utf8. Поэтому иногда нужно применять UTF8ToAnsi

TIdAttachmentMemory(Msg.MessageParts.Items[intMSGIndex]).SaveToFile(UTF8ToAnsi(filename));
AlexL
незнакомец
Сообщения: 2
Зарегистрирован: 14.08.2011 15:41:53

Сообщение AlexL »

Нет, с именами файлов проблем нет. Я пробовал задавать короткие имена файлов, без пробелов и только из латинских букв. Под windows не пробовал, на данный момент пишу только под Linux.
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

AlexL, выкладывайте тестовый пример с ошибкой
Ответить