2012-02-04 1 views
1

Я просто знаю, что должен сохранять изображения в папке temp, а затем использовать их в Htmlviewer.Как отображать изображения электронной почты на компоненте Pbear Html viewer?

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

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

ответ

3

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

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

+0

Отличный ответ! большое спасибо . – Hesi