web-dev-qa-db-fra.com

Rendre des images avec une URL non publique dans le corps du message Gmail?

La récente modification apportée par Gmail visant à diffuser toutes les images via un proxy semble indiquer qu'il n'est plus possible d'incorporer une image fournie via une URL localhost. Par exemple, en tant que développeur, je pouvais m'envoyer un email avec un contenu tel que:

<img src="http://localhost/trackthismessage?readby=xxxx" />

et, après avoir demandé à Gmail d'afficher des images, celle-ci serait affichée par ma machine de développement locale.

Maintenant, avec le proxy au milieu, il semble que ce n’est plus possible. Cette fonctionnalité a-t-elle déjà disparu ou existe-t-il une solution de contournement?

9
andrew.w.lane

Il existe en fait une solution de contournement pour le développement. Il suffit de lancer ceci dans votre console JS et les images apparaîtront. Trouvé ceci sur le débordement de pile. Assurez-vous de choisir d'abord "Afficher les images" dans le message.

(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; } })();

Vous pouvez également créer un signet pour une maniabilité accrue en préfixant ce qui précède avec javascript:

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; } })();
5
Peter

Comme vous l'avez déjà mentionné dans la question et également dans les commentaires de Munim, il est très peu probable que cela soit possible dans un avenir proche.

0
user19533