在 HTML 电子邮件中发送 base64 图像
Posted
技术标签:
【中文标题】在 HTML 电子邮件中发送 base64 图像【英文标题】:Send a base64 image in HTML email 【发布时间】:2013-04-20 23:38:22 【问题描述】:使用富文本编辑器,我们的用户可以将保存的图像从他们的桌面拖放到编辑器中。图像在提交后正确显示在网页中。
由于图片没有上传到任何地方,编辑器将图片保存为base64编码的图片。
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4QAAAFKCAIAAADKUQaBAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhepP1p32zb
等等
但它没有显示 - 不是在 iPhone 上,也不是两个不同版本的 Outlook。图像简直坏了。我们希望坚持使用 base64,因为它已经在网页上工作,并且能够在用户离线时查看图像。
【问题讨论】:
How to successfully embed images in html for display in webmail clients?的可能重复 【参考方案1】:不幸的是,支持充其量是残酷的。这是关于该主题的帖子:
https://www.campaignmonitor.com/blog/email-marketing/2013/02/embedded-images-in-html-email/
还有帖子内容:
【讨论】:
标记为答案,因为它就是答案:对 base64 的支持很糟糕,你应该尽量避免它。我们设法让它们工作,这个问题实际上存在一个错误。但是,我们必须强制使用 Outlook 2007。 Apple 可以很好地处理 base64 图像。 在 Outlook 2003 中支持,但在 Outlook 2007 中不支持?他们在想什么? 有什么选择? 谢谢你,我正准备用我自己的 base64 示例写一篇 SO 帖子。我假设通过在两个浏览器(GMail 和 Outlook)中检查生成的电子邮件,并验证我的 base64 文本未损坏,它应该可以正常工作.. @AkhilJain 这对我有用***.com/a/36870709/5536005【参考方案2】:另一种方法是使用cid
方法在电子邮件中嵌入图像。 (基本上包括图像作为附件,然后嵌入它)。根据我的经验,这种方法最近似乎得到了很好的支持。
来源:https://www.campaignmonitor.com/blog/how-to/2008/08/embedding-images-revisited/
【讨论】:
确实有效,但遗憾的是,一些电子邮件服务会向您收取发送附件的费用。 另外,很多客户端,包括 Gmail 网络界面,都会在邮件末尾附加所有附加图片的副本,这非常非常难看。以上是关于在 HTML 电子邮件中发送 base64 图像的主要内容,如果未能解决你的问题,请参考以下文章
html 中的内联图像,base64,不会出现在 gmail 中(但会出现在 Thunderbird 中)
在 MailMessage 中添加附件 base64 图像并在 html 正文中读取