我知道gmail和hotmail已经引入了他们自己的图像代理。我发送了带有src
的简单img标签的电子邮件src="http://www.zong360office.com/assets/images/logo/product-logo.png"
并且gmail会像这样转换它
src="https://ci3.googleusercontent.com/proxy/PCxvUIqBvaJWn_7H8deiQhdJD1QKV_pU5n1JhrPh3xaXMLMzcdSBYCo6-tjs69AYy858H4j5ShIRjw0UrH_VWMtCxC0zIT-Gi4j_dlQv9uRZjzGWFWA=s0-d-e1-ft#http://www.zong360office.com/assets/images/logo/product-logo.png"
原始网址是图片的直接网址。在附加的图像中,您可以看到此图像的请求和响应标题。
问题:请让我知道应该采取哪些步骤才能在gmail中显示此图片。
PS:我也遇到了与hotmail相同的问题。
答案 0 :(得分:3)
我想我已经找到了GoogleImageProxy问题。
我也在另一个问题中回答了这个问题(images inside gmail email not being displayed)。
这与CACHING概念有关。假设您最近在服务器上部署了PHP代码,但忘记上传图像。您使用电子邮件逻辑测试了一次。您的系统生成了HTML电子邮件。当此电子邮件发送到gmail服务器时,GoogleImageProxy将尝试从您的站点获取图像并将其存储到自己的代理服务器。在获取图像时,GoogleImageProxy发现了一些针对丢失图像的404状态,以及针对某些受保护图像的403状态。 GoogleImagesProxy已将这些状态存储到自己的代理服务器中。
现在尝试打开您的电子邮件,您发现了一些针对您图片的404状态。这是可以理解的。您立即意识到忘记上传某些图片,因此您将它们上传到您的服务器。并且您还修复了一些针对受保护图像的权限。
你们现在都完成了。现在,您尝试再次运行您的php-email脚本。因此,您会在Gmail或Hotmail收件箱中收到另一封电子邮件。你已经解决了你的图像的所有问题。现在,图像必须显示在您的电子邮件内容中。但你仍然无法看到图像。
啊,可能你忘记清除浏览器的缓存了。清除浏览器的缓存并再次加载gmail或hotmail页面。但结果仍然是一样的。尝试应用几十个修补程序/补丁,并尝试运行您的php-email脚本数千次。但结果仍然是一样的。没有改善。
真正的问题
到底是怎么回事?让我向你解释一下。转到您的访问日志,尝试从GoogleImageProxy查找请求。您会惊讶地发现GoogleImageProxy只会有2或3个请求,具体取决于您电子邮件中使用的不同图片的数量。 GoogleImageProxy从未尝试过获取图片即使您已经通过上传丢失的图像和设置受保护图像的权限来解决图像问题。为什么?清除浏览器的缓存没有任何影响。 GoogleImageProxy永远不会为您的新电子邮件获取新鲜图片,因为这些图片现在与其上一个状态代码一起缓存到GoogleImageProxy中,而不是缓存在您自己的浏览器中。
GoogleImageProxy已为图片设置了自己的到期日期。我想一个月。所以现在新的图像副本将在到期日后获取。我的意思是一个月后。您无法强制GoogleImageProxy获取图像。但是,在您的电子邮件中显示图像非常重要。什么可以解决方案?
解决方案
以下是强制GoogleImageProxy获取图片的唯一方法
重要提示
尝试重复每次运行php-email脚本的整个过程。因为每次GoogleImageProxy都会缓存您的图片,并且您必须为每次尝试重复相同的过程。
希望这能解决大多数人的问题。就我而言,这已经解决了这个问题。
答案 1 :(得分:0)
hese是嵌入式图像。您将图像作为附件发送,然后在img元素中使用它,如:。 Gmail会转换" cid"链接到其内部文件存储链接,以及它给出元素的原因。
这是在电子邮件中提供图像的两种常用方法之一。
另一种方法是将图片保留在您的托管中并使用外部链接发送img元素:http://yourdomain.com/yourimage.png我强烈建议您使用第二种方法,尤其是如果您希望电子邮件中包含大量图片。我在Gmail上附加图片显示时出现问题,我无法解决。
答案 2 :(得分:0)
确保来自地址是真实有效的电子邮件,而不是realname+something@example.com
格式。
我正在使用Amazon SES发送电子邮件,并将一些但不是所有图像内联为附件。对我而言,非附件正在破裂。
最终我意识到我正在使用“假”电子邮件进行收听。
我的真实电子邮件是
simon@example.com
为了便于在Gmail中过滤电子邮件,我使用+
语法创建了一个“假”电子邮件用于测试目的。
simon+test@example.com
这很有效,除了它似乎正在改变垃圾邮件/图像过滤器的行为。我的图片代码最终完全剥离了src
属性。
当我切换回使用实际的电子邮件时,所有图像都出现了。