我只知道我必须将图像保存在临时文件夹中,然后在Htmlviewer上使用它们。
但是假设我们有一封包含5张图片的电子邮件,因此html viewer为图片提供了5个空框架,其中一些位于文本正文之前,其中一些位于中间,一些位于电子邮件末尾身体 。现在我如何定义哪个帧应该包含哪个图片! ?以及如何将它们插入Html查看器?!
(有没有办法在内存流中完成所有工作?我的意思是不保存文件夹中的图像)
答案 0 :(得分:3)
使用THtmlViewer
的好处是您无需事先将图像保存到文件中。组件可以在需要时通过OnImageRequest
事件请求您的图像数据。您可以从任何可用的来源提供数据。 HTML电子邮件使用cid:
网址来引用电子邮件本身内的资源,通常是附件。当组件要求您提供此类URL时,您可以直接从TIdMessage
提取相应的数据。 TIdMessage
支持将电子邮件完全加载到内存中,而根本不使用任何临时文件。您可以通过在TIdAttachmentMemory
事件中创建TIdMessage.OnCreateAttachment
类的实例来实现此目的。
PBear几年前将THtmlViewer
发布到公共领域,现在正在Google Code上作为开源项目进行维护。有几个演示可用,包括一对使用Indy 9的演示。你应该能够将它们更新到Indy 10,这是XE2使用的。