由于谷歌的图片代理,图片链接在Gmail中断开

Bal*_*amy 53 php email gmail

由于谷歌的图片代理(news1,news2),gmail中的图片链接被破坏了.我无法在Gmail中加载我的网站图像.

实际图像路径为:http: //sampleimageurl.com/images/logo.jpg

但是我在gmail中获得了相同的图像路径:

https://ci3.googleusercontent.com/proxy/CUiMBo2ELdin8h5R_jKaarbsjQOZUXM3765smBK1PB4BsKq9EsVziwcOYFqjZqCkRDyu1jzoityEA_PJ=s0-d-e1-ft#http://sampleimageurl.com/images/logo.jpg

有谁知道如何解决这个问题?

小智 48

因为您的图片不向公众开放.

您需要确保新的Gmail图片代理可以从谷歌服务器获取您的图像.

  • +1我们运行一个QA测试服务器,其中包含我们在hosts文件中设置的特殊域名.此域仅在适当设置的计算机上有意义.过去,Gmail会显示链接,当在具有域设置的计算机上查看时,该链接将起作用,因为我们的PC知道"clientsite.test"域.现在Gmail通过尝试将图像加载到其代理数据库中来预取.除了Gmail无法解析域名"clientsite.test",因为它不是公共域名.Gmail认为链接已损坏,因此新的代理更改会导致链接断开. (7认同)
  • 出于开发目的,您可以在调试器控制台(F12)中使用此Javascript来显示此图片:(function(){while(img = document.evaluate('// img [contains(@src,\'googleusercontent.com\')]',document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue){var src = img.attributes.src.value; src = src.substr(src.indexOf('#')+ 1); img. attributes.src.value = src;}})(); (6认同)
  • 老话题,但它有帮助,对@JBreton 的 JS 代码段的改进。如果有一个带有 googleusercontent.com 但没有 # 的 URL,那会导致无限循环。(function(){ var snapshot = document.evaluate('//img[contains(@src, \'googleusercontent.com\')]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); for (var i = 0 ; i < snapshot.snapshotLength; i++) { var img = snapshot.snapshotItem(i); var src = img.attributes.src.value; src = src.substr(src.indexOf('#')+1); img .attributes.src.value = src; } })(); (3认同)

ser*_*eda 9

在Google Apps中,现在可以禁用GMail的图像代理(在应用设置中).或者,更好的是,您可以将要禁用图像代理的内部URL列入白名单.

  • 这可能会有所帮助 https://support.google.com/a/answer/3299041?hl=en (2认同)

Kum*_*r V 5

DEG的研究已经证实,从报告wordtothewise博客,劳拉阿特金斯说:"谷歌正在改写图像链接.这种重写似乎是在交付过程中发生的.当前位于邮箱中的旧邮件未显示此跟踪."

对于全局图像,这意味着只有一个用户必须打开邮件,并从服务器中提取图像.在跟踪图像的情况下,每个图像文件名称都是唯一的.每次新开放都会让Google抓住唯一命名的图片.结果是发件人可以跟踪第一次打开,但没有后续打开."

参考:http://www.degdigital.com/blog/gmail-tracking-disruption-for-marketers/


kra*_*s88 5

有两件事可能有帮助:

  1. 使用传统的图像格式,如 .jpg、.png、.gif(svg 等格式并不总是有效)
  2. 确保图像路径中没有空格或奇怪的字符(检查您的服务器请求日志。如果谷歌给出 404,则可能是链接格式问题。)