Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2014, 08:52   #1
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию IDPOP3 вытаскивание изображений

Пишу клиент для получения Mail по протоколу POP3 с различных серверов (mail, yandex, гугл и т.д.). Разобрался с получением обычного текста, и multipart. HTML странички сохраняю на HDD, и гружу в TWebBrowser. Всё работает за исключением показа изображений. Чтоб их показать, их нужно вначале вытащить из IdMessage, и вот тут не могу понять, как это сделать. Обращался уже ко всем свойства компонента, и ничего, хотя при просмотре исходного кода сообщения картинка видна, и выглядит примерно так.
Код:
--2=_YIRmuY0uo6RMQfLt2Irz4g6yK9nEuGw
Content-Type: image/jpeg;
	name="=?KOI8-R?B?y8/N0CDHxc/NxdTSydEgySDH0sHGycvBLkpQRw==?="
Content-Transfer-Encoding: base64
Content-Disposition: inline;
	filename="=?KOI8-R?B?y8/N0CDHxc/NxdTSydEgySDH0sHGycvBLkpQRw==?="
Content-ID: <ii_14a4e05a7e8164a4>
X-Attachment-Id: ii_14a4e05a7e8164a4

/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nIC // и так далее, base64 код картинки
Вопрос. Как вытащить изображение средствами Indy (не прибегая к ручному парсингу).
WinCoder вне форума Ответить с цитированием
Старый 18.12.2014, 09:05   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Что-то в таком духе
Код:
if Popmsg.MessageParts.Items[i] is TIdAttachment then TIdAttachment(Popmsg.MessageParts.Items[i]).SaveToFile('имя файла');
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.12.2014, 09:14   #3
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Странно. Вчера пробовал вытаскивать изображения таким методом, не получалось. Подумал что это подходит только для вложенных в сообщение файлов. А сейчас получилось. Видимо выспался. Аватар благодарю.
WinCoder вне форума Ответить с цитированием
Старый 18.12.2014, 09:51   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Есть там класс такой TidMultipartformdataStream вот им такие вещи и делаются.
Человек_Борща вне форума Ответить с цитированием
Старый 18.12.2014, 10:28   #5
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Мультиплатформой такие вещи отправляются, а не принимаются. Средства IdMessage целиком справились со своей задачей. Вытащил весь контент, и вывел в webbrowser. Получилось идентично web версии mail, но работающее значительно быстрее, так как грузятся исключительно объекты письма. Осталось придумать, как получить все письма параллельно в отдельных потоках, и будет вообще красота.
Изображения
Тип файла: jpg Безымянный.jpg (11.5 Кб, 140 просмотров)

Последний раз редактировалось WinCoder; 18.12.2014 в 10:30.
WinCoder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WPF + C# Подгрузка изображений в память, без блокирования файлов изображений fezilk25 C# (си шарп) 0 02.01.2014 11:28
mysql вытаскивание данных Aleksey1408D PHP 1 15.04.2011 22:40
Вытаскивание слов из автофигур Busine2009 Microsoft Office Word 4 28.05.2009 07:15
прогрманое вытаскивание компонента Juffin Общие вопросы Delphi 11 22.04.2009 11:55
Вытаскивание ссылок из текста jocry Общие вопросы Delphi 2 10.02.2009 16:51