【问题标题】:Sending an HTML email with base64 image as part of the HTML发送带有 base64 图像的 HTML 电子邮件作为 HTML 的一部分
【发布时间】:2014-05-27 21:13:51
【问题描述】:

我正在尝试发送一封包含图像标签的 HTML 内容的电子邮件,

例如:

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

不幸的是,我使用的邮件客户端都不支持图像标签上的这种“src”。

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

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

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

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

谢谢,

纳达夫 S.

【问题讨论】:

  • 你的后端控制器接收到的 HTML 是什么样的?
  • 作为一个包含有效 html 的字符串,没有 angularjs 属性...如果这就是你的意思。

标签: base64 html-email


【解决方案1】:

是的,没错。大多数客户端不支持“data:”url,即使支持,您可以嵌入的二进制文件的大小也非常有限。只够缩略图,不够真实图片。

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

Content-ID: <xxxyyy>

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

<img src="cid:xxxyyy"/>

请参阅 rfc-2392 了解完整规范。

【讨论】:

    猜你喜欢
    • 2013-04-20
    • 2013-11-11
    • 2012-04-07
    • 2011-08-27
    • 1970-01-01
    • 2016-08-23
    • 2013-11-26
    • 2018-05-12
    相关资源
    最近更新 更多