如何显示嵌入图像的html电子邮件(cid)?

Nic*_*ico 6 c# browser wpf image

我将电子邮件及其附件存储在数据库中.我正在使用WPF WebBrowser和NavigateToString方法来显示电子邮件的html正文.它可以工作但是当电子邮件使用带有内容ID(cid)的嵌入图像时,我无法显示它们.当我在数据库中保存电子邮件时,我将所有嵌入的图像保存为附件.我可以在当前用户的临时文件中创建和存储图像,并用用户磁盘上的绝对路径替换cid引用,但我认为这不是最好的方法...

你有什么想法吗?

Nic*_*ico 16

我终于找到了一个好方法:

我用base64图像数据(RFC 2557)替换了所有图像的cid引用,如下所示:

<img src="data:image/png;base64,RAAAtuhhx4dbgYKAAA7...more data....." alt="test">
Run Code Online (Sandbox Code Playgroud)

您可以使用以下代码生成base64字符串:

string base64Str = Convert.ToBase64String(File.ReadAllBytes(@"C:\Temp\test.png"));
Run Code Online (Sandbox Code Playgroud)

备注:不适用于IE6

  • 迷人而优雅.PS F*ck IE 6. (2认同)