Delphi 如何向嵌入式浏览器提供cid电子邮件附件
我正在使用Bsalsa的嵌入式web浏览器在Delphi中编写电子邮件客户端 我对cid嵌入式附件有问题,例如:Delphi 如何向嵌入式浏览器提供cid电子邮件附件,delphi,email,attachment,embedded-browser,Delphi,Email,Attachment,Embedded Browser,我正在使用Bsalsa的嵌入式web浏览器在Delphi中编写电子邮件客户端 我对cid嵌入式附件有问题,例如: <IMG src="cid:5D4219C71EAE43B1864AE9CB27C224A8@somehost"> 我将附件存储在数据库中,但不知道如何将它们提供给浏览器。似乎需要实现自定义名字对象,但文档很少 任何帮助都将不胜感激。最简单的解决方案是根据请求将“附件”提取到临时文件夹中,然后在显示之前更改源中的引用以指向这些临时文件。在过去,我已经习惯了这一点,并
<IMG src="cid:5D4219C71EAE43B1864AE9CB27C224A8@somehost">
我将附件存储在数据库中,但不知道如何将它们提供给浏览器。似乎需要实现自定义名字对象,但文档很少
任何帮助都将不胜感激。最简单的解决方案是根据请求将“附件”提取到临时文件夹中,然后在显示之前更改源中的引用以指向这些临时文件。在过去,我已经习惯了这一点,并取得了巨大的成功
如果我没记错的话,消息包含这些mime附件以及一个可选的文件名,该文件名并不总是存在,但将具有mime类型,因此您可能需要有一个翻译表才能获得附件的默认文件扩展名。此外,请跟踪临时目录中的文件,并在关闭消息窗口后进行清理。如果允许同时打开多封邮件,请允许名称冲突并生成唯一的文件。。签名有相同的名字,但来自不同的人是很常见的。。。如果您的邮件由John签名为Mary,则可能会令人困惑。:) 我用一个“可插拔协议”处理程序实现了它,它比看起来更简单。从这里开始:在这里: 很抱歉,我不能分享我写的代码,但它是为我工作的公司写的,我对此有限制。基本上,您需要一个com对象来实现适当的接口来获取数据并允许web浏览器控件读取数据
这是正确的做法——从长远来看,更改邮件和存储临时数据可能会带来问题 是的,这就是我目前正在做的,但我希望找到一个“合适的”解决方案。在我看来,命名方法就像是用大锤把大头钉敲入巴尔沙木。它是有效的,但是当你可以用手指的时候需要更多的努力。好吧,理论上,名字是正确的解决方案,比起保存到临时文件等,它更像是一种黑客行为,问题只在于复杂的实现,这对你来说很好,Daniel(供未来读者参考),这可能是用于阅读电子邮件(CID协议)把人们的电子邮件写到临时文件中也不是很好的做法。。太难确保安全/隐私。我发现了这个问答,因为我正在更新一个应用程序,我只希望被接受的答案能给出更多的细节,但要理解为什么他们不能。