Eu tenho alguns e-mails automáticos que são enviados após a conclusão da inscrição no meu site.
Até recentemente, eles funcionavam bem. Agora, o novo sistema do Google está reescrevendo as imagens e armazenando-as em seu cache (supostamente)
No entanto, a nova reescrita do Google para meus links de imagem está quebrando-os completamente, dando um erro 500 e uma imagem de link quebrada.
Digamos que o url de minha imagem normal seja:
http://www.mysite.com/images/pic1.jpg
O Google está reescrevendo isso para:
https://ci5.googleusercontent.com/proxy/vI79kajdUGm6Wk-fjyicDLjZbCB1w9NfkoZ-zQFOB2OpJ1ILmSvfvHmE56r72us5mIuIXCFiO3V8rgkZOjfhghTH0R07BbcQy5g=s0-d-e1-ft#http://www.mysite.com/images/pic1.jpg
No entanto, não há nada nesse URL.
Então, ou há algo errado com os links que estão sendo criados pelo Google ou as imagens simplesmente não estão sendo enviadas para o servidor googleusercontent, mas não tenho ideia de como resolver o problema.
Estou usando PHP, a biblioteca phpmailer e um servidor Ubuntu no Amazon EC2, mas não tenho certeza se isso está relacionado ao problema.
Respostas:
Acho que descobri o problema do GoogleImageProxy.
Isso é algo relacionado ao conceito de CACHING. suponha que você implantou recentemente seu código php em seu servidor, mas se esqueceu de enviar imagens. você testou uma vez com sua lógica de email. seu sistema gerou um e-mail em HTML. Quando este e-mail chegar ao servidor do gmail, GoogleImageProxy tentará buscar e armazenar as imagens do seu site em seu próprio servidor proxy. ao buscar as imagens, o GoogleImageProxy encontrou alguns status 404 em relação às suas imagens ausentes e 403 em algumas imagens protegidas. GoogleImagesProxy armazenou esses status em seu próprio servidor proxy.
Agora que tentou abrir seu e-mail, você notou alguns status 404 em suas imagens. Isso é algo compreensível. Você imediatamente percebeu que esqueceu de fazer upload de algumas imagens, então você as carregou para o seu servidor. e também corrigiu algumas permissões contra imagens protegidas.
Tudo pronto agora. Agora você tenta executar seu script de email php mais uma vez. Como resultado, você recebe outro e-mail na caixa de entrada do Gmail ou do Hotmail. você corrigiu todos os problemas com suas imagens. Agora as imagens devem ser exibidas no conteúdo do seu e-mail. mas você ainda não consegue ver as imagens.
Ah, possivelmente você se esqueceu de limpar o cache do seu navegador. Limpe o cache do seu navegador e carregue a página do gmail ou hotmail mais uma vez. Mas o resultado ainda será o mesmo. Tente aplicar dezenas de correções / patches e tente executar seu script de email php milhares de vezes. Mas o resultado ainda será o mesmo. Sem melhora.
O REAL PROBLEMA
O que diabos está acontecendo? Deixe-me explicar isso para você. Vá para o seu registro de acesso e tente encontrar as solicitações do GoogleImageProxy. Você ficará surpreso ao ver que haverá apenas 2 ou 3 solicitações de três do GoogleImageProxy, dependendo do número de imagens diferentes usadas em seu e-mail. GoogleImageProxy nunca tentou buscar imagens Mesmo depois de corrigir os problemas com suas imagens, enviando imagens ausentes e definindo permissões para imagens protegidas. Por quê? Limpar o cache do seu navegador não tem impacto. GoogleImageProxy nunca irá buscar as imagens novas, mesmo para o seu e-mail mais recente, porque as imagens agora são armazenadas em cache no GoogleImageProxy junto com seu último código de status e não em cache no seu próprio navegador.
GoogleImageProxy definiu sua própria data de validade para as imagens. Acho que um mês. então agora a nova cópia das imagens será obtida após a data de expiração. Quero dizer, depois de um mês. Você não pode forçar GoogleImageProxy a buscar as imagens. Mas é importante que você exiba imagens em seu e-mail. Qual pode ser a solução?
A SOLUÇÃO
Veja a seguir a única maneira de forçar o GoogleImageProxy a buscar suas imagens
?t=34343
Content-Type: image/jpeg
NOTA IMPORTANTE
Tente repetir todo o processo para cada execução do script de email php. porque toda vez que o GoogleImageProxy armazenará em cache suas imagens e você terá que repetir o mesmo processo a cada nova tentativa.
Esperançosamente, isso resolverá o problema para a maioria das pessoas.
fonte
Com base no seu exemplo, parece que você está usando extensões tradicionais (.jpg, .png, .gif). Algumas pessoas neste tópico , descrevendo os mesmos problemas que você está enfrentando, afirmaram que o uso dessas extensões resolve o problema.
Outras soluções possíveis:
fonte
.svg
imagens e foi confirmado que elas não são compatíveis com o proxy do Google.pixel.gif
. Alterando isso para 1x1 transparentepixel.png
e o proxy atendido conforme o esperado. Esquisito.Eu estava tendo um problema semelhante, mas foi causado pelo comprimento do URL. O Google gera o seguinte URL ao armazenar em cache uma imagem do gmail:
O hash gerado é baseado no URL da imagem, mas o tamanho varia de acordo com os caracteres usados. Eu executei vários testes com URLs de tamanhos diferentes e descobri que a imagem em cache não carregaria de forma consistente (400 / Solicitação inválida) se o hash exceder 2.076 caracteres de comprimento (perto de 2.048 bytes + meta? Não tenho certeza).
Novamente, o URL da imagem pode gerar um hash que excede esse número de caracteres em aproximadamente 1000 caracteres especiais ou mais de 1500 caracteres simples. Se o hash exceder 2.076 caracteres de comprimento, a solicitação falhará.
Sei que esta é uma postagem antiga, mas espero que ajude outros desenvolvedores a vasculhar o Google
fonte
Eu sei que esta é uma pergunta antiga, mas a mesma coisa aconteceu comigo. Quando verifiquei meus registros de acesso foi o que encontrei -
Você pode ver que meu servidor estava bloqueando o GOOGLEIMAGEPROXY, dando a ele uma resposta 403 Proibido . Decidi verificar meu .htaccess e com certeza estava bloqueando o termo PROXY . Depois de remover o termo, as imagens agora aparecem bem no Gmail. Espero que ajude.
fonte
curl -I --user-agent "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (via ggpht.com GoogleImageProxy)" -X GET https://example.com/your-image.png
Locais de imagem HTTPS fazem cache. Vários de nossos ambientes de produção não têm problemas com localizações de imagens de proxy do gmail usando um uri HTTPS. Posso ver o gmail ignorando seu conteúdo se o certificado SSL for inválido de alguma forma.
fonte
Acabei de tentar, depois de substituir a imagem (sem alterar o nome da imagem)
Abra o e-mail em um novo navegador, ele mostra uma nova imagem
Ctrl + f5 (força uma atualização do cache) no cromo (meu navegador padrão), também mostra a nova imagem
fonte
Verifique se o tipo de conteúdo retornado para o arquivo de imagem por seu servidor está correto.
Você pode verificar isso usando o Fiddler.
fonte
No meu caso o tamanho do arquivo era o problema, era 22 Mb (sei bem?), E depois que reduzimos o tamanho tudo começou a funcionar perfeitamente.
Verifique o tamanho do arquivo e, se for muito grande, compacte-o.
fonte
Eu sei que esta é uma pergunta antiga, mas encontrei este problema. No meu caso, as imagens são armazenadas no Google Cloud Storage. O que é interessante é aquele link
retorna 307 (redirecionamento temporário) e
Location
cabeçalho contendo algo comoParece que GoogleImageProxy não processa 307 corretamente
fonte
Eu tenho uma solução perfeita para este problema, que funcionou para mim se você estiver usando o PHPMailer então você só tem que adicionar outra opção no PHPMailer para anexar uma imagem como esta
$mail = new PHPMailer(); $mail->AddEmbeddedImage('../absolutepath/image/image.jpg', 'logoimg', '../absolutepath/image/image.jpg');
Aqui, fornecemos o caminho absoluto da imagem e chamamos o nome de 'logoimg' ou o que você quiser.
Agora você pode adicionar este logoimg a qualquer lugar em seu corpo HTML como este
$mail->Body = " <h1>Test of PHPMailer html body with image</h1> <p>This is a test picture: <img src=\"cid:logoimg\" /></p>"; $mail->send();
Isso é tudo.
fonte
URL adicionar auto https://ci3.googleusercontent.com/proxy/jTpYlM6RUv7Wi8Hxjha4fzExKFy9mjyh133MKKfo3FuV3toLToG6zJcA0IAdIMEW75pY6pkEd2aOSVhWIn0A82q-24YaAd-_k00wIMHwIuUBiy9vEGrMpAW73HaHQmViuESP7A=s0-d-e1-ft#
fonte
Tive esse problema quando estava enviando GIFs. Descobri que o tamanho do arquivo é importante para o servidor proxy do Googles. Eu sugiro fazer os arquivos o mais pequenos possível e ver se isso funciona. Você pode usar sua conta do Gmail e adicionar uma foto de um URL para testar. Se o GIF aparecer quando você estiver redigindo seu e-mail, ele poderá ser recebido.
codificação feliz.
fonte
fonte
No meu caso de encontrar esse problema, o problema foi que acidentalmente o caminho para a imagem no modelo de e-mail tinha barras triplas no URL, por exemplo
https:///content.example.org/image.png
. Isso era difícil de detectar e, embora funcionasse em outros clientes de e-mail que conseguiam resolver o URL, o proxy de imagem do Google não foi capaz de lidar com isso e resultou em um erro 404 para o endereço da imagem com proxy.fonte
Certifique-se de que o Gmail solicite sua imagem
http
, nãohttps
.Digamos que o url de sua imagem normal seja:
Então mude para:
Tenho a forte sensação de que o proxy do Google não armazena em cache
https
.fonte
É 6 de março e você provavelmente já descobriu isso, mas pensei em intervir para ajudar outras pessoas. Descobri que JPGs não funcionam no gmail. O formato PNG funciona muito bem. Desculpe, não posso explicar por quê, mas às vezes é melhor não perguntar por quê. Use PNG!
fonte