如何使用nodejs在电子邮件的html模板中嵌入图像?

时间:2019-09-30 07:50:55

标签: javascript node.js

我在电子邮件的HTML模板中添加了一个图像,如下所示:

js

但是在gmail中,由于跳过了src,图像无法呈现:

<table>
  <tr>
    <td>
      <img src="data:image/png;base64,iVBORw0KGgoAA.........." width="30%" height="150">
    </td>
  </tr>
</table>

有解决方案吗?

2 个答案:

答案 0 :(得分:2)

如果您正在使用节点邮件程序。 附件可以用作HTML正文中的嵌入式图像。要使用此功能,您需要设置附件的附加属性– cid(文件的唯一标识符),它是对附件文件的引用。必须将相同的cid值用作HTML中的图像URL(使用cid:作为URL协议,请参见下面的示例)。 注意:cid应该尽可能唯一。

var mailOptions = {
    ...
    html: 'Embedded image: <img src="cid:unique@yourImage.ee"/>',
    attachments: [{
        filename: 'image.png',
        path: '/path/to/file/image.png',
        cid: 'unique@yourImage.ee' //same cid value as in the html img src
    }]
}

source

如果此方法不起作用,则图像路径可能存在问题,请尝试使用 path: __dirname +'/path/to/file/image.png',

答案 1 :(得分:0)

添加到克里希纳·萨普卡尔(Krishna Sapkal)的答案中,如果您想减少发送带有附件(甚至base64数据)的整个邮件所用的空间,可以将图像上传到imgur.com甚至AWS S3存储桶等位置。用src调用它。

 <img src="https://i.stack.imgur.com/{image_name_goes_here}.jpg" width="30%" height="150">
相关问题