邮件中的Base64图片,在谷歌邮件中无法显示。

9

我创建了一个 base64 图片,将其通过邮件发送给客户的移动设备。在邮件应用程序中可以正常工作,但 Gmail 应用程序显示缺少图片。

这是谷歌邮件为了安全起见而阻止数据图像吗?也没有显示图像的按钮。

代码:

    $headers = "From: info@mydomain.com\r\n";
    $headers .= "Reply-To: info@mydomain.com\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

$imagedata = file_get_contents("http://www.barcodesinc.com/generator/image.php? code=12345&style=68&type=C128B&width=180&height=70&xres=1&font=1"); $base64 = base64_encode($imagedata); $message ="<img src='data:image/png;base64,$base64'>";
mail($to,$subject,$message,$headers);</pre>

请查看https://dev59.com/8nA75IYBdhLWcg3weY1f#12786336。不确定它是否仍然有效,但很可能会。 - SamV
@Dagon,我已经添加了代码。Sam,我不太懂如何使用那段代码,因为我对PHP邮件非常基础。 - likdaboo
与我所见过的嵌入图像发送电子邮件毫不相似。 - user557846
2个回答

5

谷歌正在阻止图像加载。谷歌去除了大部分内联 CSS 和其他可能会对终端用户系统造成影响的漏洞。不幸的是,这就是现状。但我仍然认为你永远不应该在电子邮件中嵌入图像,因为有很多使用数据计划的移动用户。这似乎有点粗鲁。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接