如何显示带有嵌入式图片(cid)的HTML电子邮件?

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

你有什么想法吗?

1个回答

18

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

我用base64图像数据(RFC 2557)替换了所有图像的cid引用,就像这样:

<img src="data:image/png;base64,RAAAtuhhx4dbgYKAAA7...more data....." alt="test">

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

string base64Str = Convert.ToBase64String(File.ReadAllBytes(@"C:\Temp\test.png"));

备注:不适用于IE6


1
感谢您发布您的答案! - Abhinav Manchanda
2
迷人而优雅。附言:该死的IE 6。 - Ivan G.
非常优雅,但要注意:浏览器对数据URL的大小有限制 - Heinzi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接