我正在尝试使用以 base 64 数据 URL 编码的图像在 HTML 中进行签名。这是一个例子:
<img src="data:image/png;base64,iVBORw0KGgoAAAAN...kJggg==">
它与 Mac 上的 Mail 或 Thunderbird 等邮件软件很好用,但不适用于 gmail、outlook、roundcube、hotmail 等 webmail ......
你知道如何让它工作吗?我真的很想把那些图片直接放在源代码中,这样更实用。
简单的答案?
你不能。Gmail、outlook 等将忽略 base64 图像。
因此,根据我们的结果,显然不值得在您的电子邮件中使用嵌入式图像。您将要做的就是强迫人们下载他们无法查看的编码图像。
我正在使用嵌入式 SVG,原因如下:
但如果您真的想在 Gmail 和 Outlook 中显示图像,则需要通过 HTTP 加载这些图像。
来自 CSS-tricks 的人在电子邮件中对 SVG 有一个很好的指南:https ://css-tricks.com/a-guide-on-svg-support-in-email/
最终解决方案如下:
/* Resize an element that has a width and height of zero to full size */
.showy {
height: 100% !important;
width: 100% !important;
}
<!-- Image: SVG -->
<img class="showy" width="0" height="0" src="my-image.svg">
<!-- Image: JPG -->
<img class="no-showy" src="my-image.jpg">
但我个人不喜欢这样,因为我不希望客户端询问用户是否要加载额外的资源。