如何在Pbear Html查看器组件上显示电子邮件图像?

时间:2012-02-04 18:30:38

标签: delphi-xe delphi-xe2

我只知道我必须将图像保存在临时文件夹中,然后在Htmlviewer上使用它们。

但是假设我们有一封包含5张图片的电子邮件,因此html viewer为图片提供了5个空框架,其中一些位于文本正文之前,其中一些位于中间,一些位于电子邮件末尾身体 。现在我如何定义哪个帧应该包含哪个图片! ?以及如何将它们插入Html查看器?!

(有没有办法在内存流中完成所有工作?我的意思是不保存文件夹中的图像)

1 个答案:

答案 0 :(得分:3)

使用THtmlViewer的好处是您无需事先将图像保存到文件中。组件可以在需要时通过OnImageRequest事件请求您的图像数据。您可以从任何可用的来源提供数据。 HTML电子邮件使用cid:网址来引用电子邮件本身内的资源,通常是附件。当组件要求您提供此类URL时,您可以直接从TIdMessage提取相应的数据。 TIdMessage支持将电子邮件完全加载到内存中,而根本不使用任何临时文件。您可以通过在TIdAttachmentMemory事件中创建TIdMessage.OnCreateAttachment类的实例来实现此目的。

PBear几年前将THtmlViewer发布到公共领域,现在正在Google Code上作为开源项目进行维护。有几个演示可用,包括一对使用Indy 9的演示。你应该能够将它们更新到Indy 10,这是XE2使用的。