我试图发送电子邮件给用户,但由于某种原因,我的图像没有渲染,我得到:
。当我尝试在Gmail中Inspect Element
时,我的图像src不正确:
https://ci5.googleusercontent.com/proxy/BAKUQWuXu4XR7w4v6hboZ0E9LQlwspSfcV4K1tkK6rgoPeQrt0b0J-Q2ndKdbTAV5-XJa4yrVHuTKpBy24_Q-QWt7PnLFY0VanfclSmZrTgg=s0-d-e1-ft#http://test.com/images/email_upload/my-image.png
正确的URL:
http://test.com/images/email_upload/my-image.png
这是我的模板:
<a href="#" style="color: #4cb2e1; font-weight: lighter; text-decoration: none">
<img src="{{ asset('images/email_upload/my-image.png') }}" width="150" height="50" style="margin-left: 20px; margin-right: 12px" align="left">
</a>
P.S. I using Laravel mailable.
2条答案
按热度按时间wvt8vs2t1#
这是Gmail的一项“功能”;它们会预先缓存从电子邮件中引用的图片,并重写URL,使其指向自己的副本,据称这是一种减少负载和阻止跟踪像素的方法。为了确保您实际发送的内容是正确的,您可以在非gmail地址发送BCC,然后比较收到的邮件结果,以查看gmail到底发生了什么变化。
一个基本的问题是,你似乎没有通过HTTPS提供图像;现在大多数人都认为这是一个bug。
这样做的一个副作用是,接收到的消息不能为DKIM进行“reverified”,这至少部分地破坏了DKIM的意义。
在this excellent answer中有关于这个问题的进一步讨论,以及其他人对这个问题的回答。不幸的是,共识似乎是谷歌的图像缓存系统有缺陷,但就gmail而言,这并不是什么新鲜事。
i2loujxw2#
请尝试此嵌入方法embed(public_path('/images/logo.svg'))}}"〉