Как отобразить изображения электронной почты в компоненте просмотра Pbear Html? - PullRequest
1 голос
/ 04 февраля 2012

Я просто знаю, что должен сохранить изображения во временной папке, а затем использовать их в Htmlviewer.

Но предположим, что у нас есть электронное письмо, содержащее 5 изображений, поэтому программа просмотра html предоставляет 5 пустых кадров для изображенийнекоторые из них расположены перед текстом, некоторые - посередине, а некоторые - в конце письма.Теперь, как я могу определить, какой кадр должен содержать какое изображение!?и как вставить их в средство просмотра Html?!.

(есть ли способ выполнить всю работу в потоке памяти? Я имею в виду, не сохраняя изображения в папке)

1 Ответ

3 голосов
/ 05 февраля 2012

Преимущество использования THtmlViewer заключается в том, что вам не нужно заранее сохранять изображения в файл.Компонент может запрашивать данные изображения у вас при необходимости через событие OnImageRequest.Вы можете предоставить данные из любого источника, который у вас есть.В электронных письмах HTML используются URL-адреса cid: для ссылки на ресурсы внутри самого электронного письма, обычно это вложения.Когда компонент запрашивает у вас такой URL, вы можете напрямую получить данные, отвечающие на запрос, из TIdMessage.TIdMessage поддерживает загрузку электронных писем полностью в память без каких-либо временных файлов вообще.Вы делаете это путем создания экземпляра класса TIdAttachmentMemory в событии TIdMessage.OnCreateAttachment.

PBear выпустил THtmlViewer в общественное достояние несколько лет назад, и теперь он поддерживается как проект с открытым исходным кодом. Google Code .Доступно несколько демонстраций, в том числе пара, использующая Indy 9. Вы должны иметь возможность обновить их до Indy 10, что и используется XE2.

...