Delphi 如何在TWebBrowser上显示电子邮件?
我正在使用IdImap4+Idmessage接收电子邮件 但我没有发现:Delphi 如何在TWebBrowser上显示电子邮件?,delphi,email,rendering,Delphi,Email,Rendering,我正在使用IdImap4+Idmessage接收电子邮件 但我没有发现: 如何在TWebBrowser上显示收到的HTML格式的电子邮件正文 是否也可以在TWebBrowser上显示简单的文本消息?如果是,如何进行 从技术上讲,显示电子邮件的HTML是可能的,但是TWebBrowser并不真正适合此用途。您需要将HTML存储在内存中,通过IStream接口(例如通过使用TMemoryStream和TStreamAdapter类)可以访问该HTML,然后通过TWebBrowser::Navigat
从技术上讲,显示电子邮件的HTML是可能的,但是
TWebBrowser
并不真正适合此用途。您需要将HTML存储在内存中,通过IStream
接口(例如通过使用TMemoryStream
和TStreamAdapter
类)可以访问该HTML,然后通过TWebBrowser::Navigate2()将浏览器导航到“about:blank”
URL
方法并等待触发TWebBrowser::OnDocumentComplete
事件,然后查询文档的IPersistStreamInit
接口,并将IStream
传递给IPersistStreamInit::Load()
方法
一般来说,在内存中显示HTML有一些微妙的怪癖,更不用说显示电子邮件中的HTML了。特别是,电子邮件的HTML可能依赖于位于电子邮件其他位置的图像和其他资源,如果不将它们保存到临时文件并更改HTML以引用它们,则无法将其加载到TWebBrowser
。您最好使用第三方HTML查看器,如中的HTML查看组件,该组件支持为请求的资源手动提供数据。然后,您可以根据需要从TID消息中提取数据
要在浏览器中显示其他消息,您可能必须在加载初始页面后操作文档的DOM(除非在显示之前更改HTML内联)。将您的电子邮件另存为“email.mhtml”,然后在TWebBrowser上加载。
使用导航方法加载
之后,浏览器将执行所有您想要的操作。
当他存在时,他将以简单文本的形式阅读文本,但优先考虑HTML正文
我真的很抱歉纠正雷米·勒博的回答,但此时我是对的,他是错的。
我眼里含着泪水说。。。
Gambit不幸的是,Pbear htmlviewer不支持Delphi Xe。你知道其他第三方html查看器吗?我找到了这个html查看器的更新版本。非常感谢你的帮助。