Renderizar imagens com URL não público no corpo da mensagem do Gmail?

9

Com a recente alteração do Gmail para veicular todas as imagens por meio de um proxy, parece que não é mais possível incorporar uma imagem veiculada por meio de um localhostURL. Por exemplo, como desenvolvedor, eu era capaz de enviar um e-mail para mim com conteúdo como:

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

e, ao pedir ao Gmail para exibir imagens, a imagem seria veiculada pela minha máquina de desenvolvimento local.

Agora, com o proxy no meio, parece que isso não é mais possível. Agora, essa funcionalidade acabou ou existe uma solução alternativa?

andrew.w.lane
fonte
Duvido muito que haja uma solução alternativa, a menos que o gmail retorne a esse recurso. Você provavelmente precisará disponibilizar sua imagem na Internet para que o Gmail possa armazená-la em cache.
Munim

Respostas:

5

Na verdade, existe uma solução alternativa para o desenvolvimento. Basta executar isso no seu console JS e as imagens aparecerão. Encontrei isso no Stack Overflow. Certifique-se de escolher 'Exibir imagens' na mensagem primeiro

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

Você também pode criar um marcador para aumentar a praticidade, prefixando o acima com 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; } })();
Pedro
fonte
0

Como já mencionado por você na pergunta em si e também por Munim nos comentários, é altamente improvável que isso seja possível em breve no futuro próximo.


fonte