我在电子邮件的HTML模板中添加了一个图像,如下所示:
js
但是在gmail中,由于跳过了src,图像无法呈现:
<table>
<tr>
<td>
<img src="data:image/png;base64,iVBORw0KGgoAA.........." width="30%" height="150">
</td>
</tr>
</table>
有解决方案吗?
答案 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
}]
}
如果此方法不起作用,则图像路径可能存在问题,请尝试使用
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">