使用base64图像作为HTML的一部分发送HTML电子邮件

时间:2014-05-26 09:09:22

标签: base64 html-email

我正在尝试发送包含图片代码的HTML内容的电子邮件

例如:

<img ng-src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEU...gAAASwAAAAmCC" />

遗憾的是,我使用的邮件客户端都没有在图片标签上支持这种“src”。

尝试谷歌,它似乎是已知的问题,但没有一个答案对我有好处。

顺便说一下,我使用AngularJS将模型绑定到html内容,然后将其作为html字符串传递

到WebApi控制器,然后用Smtp客户端发送它。

希望有人可以帮我解决这个问题,

谢谢,

Nadav S。

1 个答案:

答案 0 :(得分:1)

是的,这是正确的。大多数客户端不支持“data:”url,即使他们这样做,您可以嵌入的二进制文件的大小也非常有限。对于缩略图来说已经足够了,不足以拍摄真实照片。

正确的方法是使用mime multipart / related和“cid:”url。然后一部分包含HTML,另一部分包含base64编码图片。图像部分包含一个标题,其中包含一个名为“Content-ID”的字段。该值是由&lt;&gt;包围的任何唯一字符串。例如:

Content-ID: <xxxyyy>

在HTML中,您使用以下代码:

<img src="cid:xxxyyy"/>

有关完整规范,请参阅rfc-2392。