【问题标题】:How to provide cid email attachments to embedded browser如何向嵌入式浏览器提供 cid 电子邮件附件
【发布时间】:2009-12-18 16:03:02
【问题描述】:

我正在使用 Bsalsa 的嵌入式 Web 浏览器在 Delphi 中编写电子邮件客户端

我对 cid 嵌入式附件有疑问,例如:

<IMG src="cid:5D4219C71EAE43B1864AE9CB27C224A8@somehost">

我将附件存储在数据库中,但不知道如何将它们提供给浏览器。似乎可能需要实现自定义名字对象,但文档很少。

任何帮助将不胜感激。

【问题讨论】:

    标签: delphi email attachment embedded-browser


    【解决方案1】:

    我使用“可插入协议”处理程序实现了它,它看起来比它更容易。从这里开始:http://msdn.microsoft.com/en-us/library/aa767916(VS.85).aspx 和这里:http://www.bsalsa.com/protocols.html

    很抱歉,我无法分享我编写的代码,但它是为我工作的公司编写的,我对此有限制。基本上,您需要一个 com 对象来实现正确的接口来获取数据并允许 Web 浏览器控件读取它们。

    恕我直言,这是正确的做法 - 从长远来看,更改邮件和存储临时数据可能会带来问题。

    【讨论】:

      【解决方案2】:

      最简单的解决方案是根据请求将“附件”提取到临时文件夹中,然后在显示之前更改源中的引用以指向这些临时文件。过去我曾使用diHTMLParser 来实现这一目标并取得了巨大成功。

      如果我没记错的话,该消息包含这些 mime 附件以及一个可选的文件名,该文件名并不总是存在,但会有一个 mime 类型,因此您可能必须有一个转换表才能获得附件的默认文件扩展名.此外,跟踪您放置在临时目录中的文件,并在关闭消息窗口后进行清理。如果您允许一次打开多条消息,允许名称冲突并生成唯一文件。签名通常具有相同的名称,但来自不同的人...如果您来自 John 的消息签名为 Mary,这可能会令人困惑。 :)

      【讨论】:

      • 对,这就是我目前正在做的,但希望有一个“正确”的解决方案
      • 在我看来,绰号方法感觉就像用大锤在轻木上敲打钉子。它有效,但当你能用手指时需要更多的努力。
      • 嗯,理论上绰号是正确的解决方案,与其说是保存到临时文件等,不如说是黑客攻击,这只是复杂的实现问题,恕我直言
      • 对你有好处 Daniel(以及供未来读者参考的信息),这可能是用于阅读电子邮件(CID 协议)而不是将人们的电子邮件写入临时文件的好习惯.. 太难确保安全/隐私。我找到了这个问答,因为我目前正在更新一个可以做到这一点的应用程序——只希望接受的答案能提供更多细节,但要理解为什么他们不能。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      • 2015-04-14
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多