Технически возможно отобразить HTML-код электронной почты, однако TWebBrowser
не совсем подходит для этой цели.Вам необходимо сохранить HTML-код в памяти, доступной через интерфейс IStream
(например, с помощью классов TMemoryStream
и TStreamAdapter
), затем перейдите к браузеру по URL-адресу "about:blank"
с помощью метода TWebBrowser::Navigate2()
идождитесь возникновения события TWebBrowser::OnDocumentComplete
, затем запросите документ для интерфейса IPersistStreamInit
и передайте IStream
методу IPersistStreamInit::Load()
.
Существуют тонкие причуды с отображением HTML в памяти вВообще, не говоря уже о отображении HTML из электронной почты.В частности, HTML-код электронной почты может зависеть от изображений и других ресурсов, расположенных в других местах электронной почты, которые нельзя загрузить в TWebBrowser
без сохранения их во временных файлах и изменения HTML-кода для обращения к ним.Вам лучше использовать стороннюю программу просмотра HTML, такую как компоненты просмотра HTML из http://www.pbear.com,, которые поддерживают ручное предоставление данных для запрашиваемых ресурсов.Затем вы можете извлекать данные из TIdMessage
по мере необходимости.
Чтобы отобразить другие сообщения в браузере, вам, вероятно, придется манипулировать DOM документа после загрузки начальной страницы (если только вы не изменили встроенный HTML-код).перед его отображением).