Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Gmail将嵌入的图像显示为base64字符串_Javascript_Base64 - Fatal编程技术网

Javascript Gmail将嵌入的图像显示为base64字符串

Javascript Gmail将嵌入的图像显示为base64字符串,javascript,base64,Javascript,Base64,我正在使用pug、电子邮件模板和NodeEmailer ses传输,通过AWS ses从node.js发送电子邮件。电子邮件预览看起来不错,但我在Gmail web客户端收到的测试电子邮件完全搞乱了,因为图像没有从base64字符串转换回来,并且显示为html: 这似乎是Gmail的问题,只是因为在Mac Mail客户端它看起来很好。有时,电子邮件显示正确,但没有图像 我曾尝试使用存储在S3上的链接图像,但Gmail去掉了src,图像并没有显示出来 我收到的其他电子邮件(如Strava的通知)

我正在使用pug、电子邮件模板和NodeEmailer ses传输,通过AWS ses从node.js发送电子邮件。电子邮件预览看起来不错,但我在Gmail web客户端收到的测试电子邮件完全搞乱了,因为图像没有从base64字符串转换回来,并且显示为html:

这似乎是Gmail的问题,只是因为在Mac Mail客户端它看起来很好。有时,电子邮件显示正确,但没有图像

我曾尝试使用存储在S3上的链接图像,但Gmail去掉了src,图像并没有显示出来

我收到的其他电子邮件(如Strava的通知)不会发生这种情况

我可以显示的唯一方法是使用CID:

const email = new Email({
    message: {
        from: config.EMAIL_FROM, // sender address
        attachments: [
            {
                filename: 'logo.png',
                path: `${resources}/logo.png`,
                cid: 'logo',
            },
        ],
    },
    send: true,
    transport,
    juice: true,
    preview:false,
    juiceResources: {
        preserveImportant: true,
        webResources: {
            images: false,
            relativeTo: `${config.TEMPLATES_DIR}/assets`,
        },
    },
});
但是,我不喜欢这个解决方案,因为图像在电子邮件中显示为附件

任何关于如何正确嵌入图像以便在任何地方都可以访问的建议。我看到过很多类似的讨论,最近的一些讨论表明Gmail现在支持嵌入式图像