Gmail nuova immagine nella cache di rottura immagine link nella newsletter

Ho alcune automatico di messaggi di posta elettronica che vengono inviati su signup completamento per il mio sito.

Fino a poco tempo fa, hanno lavorato bene. Ora Google nuovo sistema di riscrittura delle immagini e la loro memorizzazione in cache (presumibilmente)

Tuttavia, il nuovo Google riscrittura della mia immagine collegamenti sono completamente rompendo loro, dando un errore 500 e link non funzionanti immagine.

Permette di dire la mia immagine normale url è:

http://www.mysite.com/images/pic1.jpg

Google è la riscrittura di questo:

https://ci5.googleusercontent.com/proxy/vI79kajdUGm6Wk-fjyicDLjZbCB1w9NfkoZ-zQFOB2OpJ1ILmSvfvHmE56r72us5mIuIXCFiO3V8rgkZOjfhghTH0R07BbcQy5g=s0-d-e1-ft#http://www.mysite.com/images/pic1.jpg

Tuttavia, non c’è nulla a che URL.

Gmail nuova immagine nella cache di rottura immagine link nella newsletter

Così, o c’è qualcosa di sbagliato con i collegamenti che sono stati creati da Google, o le immagini non sono solo caricato il googleusercontent server, ma non ho idea di come risolvere il problema.

Im utilizzando PHP, il libreria phpmailer e un Ubuntu server su Amazon EC2, ma Im non sicuro che è correlato al problema.

  • hai qualche funzione di sicurezza nel vostro server o logica che serve l’immagine ? è disponibile solo per un periodo di tempo limitato o questo tipo di caratteristiche ?
  • Non c’è nessun tipo di funzionalità di sicurezza o sistema di login per visualizzare le immagini sono in una cartella pubblica nel sistema. Se si visita il link originale le immagini sono visualizzabili. Il problema è che Google riscrittura dell’url è non caricare l’immagine per i loro server o non correttamente indirizzare l’utente del mio sito.
  • Dopo il blog e post di revisione, non vi è alcuna reale soluzione trovata per questo casuale problema (Marzo 2013). Ho sbagliato ?
  • questo mi sta facendo assolutamente folle. google ha rotto email. sono stato attivo in diversi relativi thread sul forum di google e possibile ottenere alcuna trazione. questo è stato rotto dall’inizio di dicembre 2013.
  • È questo andato da nessuna parte? Sto tirando i capelli fuori. Le immagini sono accessibili pubblicamente, è carico di multa quando andando direttamente a loro, un tipo di contenuto partite e google proxy server è sempre nulla, ma 200 OKs nel mio log. Non ho idea del perché le immagini non verranno visualizzate in gmail.
  • Non ho mai avuto a fondo di questo, purtroppo.

 

14 Replies
  1. 69

    Penso di avere capito il GoogleImageProxy problema.

    Questo è qualcosa che riguarda la CACHE di concetto. supponiamo che avete recentemente distribuito il codice php sul tuo server, ma si è dimenticato di caricare le immagini. hai provato una volta con una e-mail di logica. il sistema ha generato un e-mail HTML. Quando questa e-mail ha colpito i server di gmail GoogleImageProxy tenterà di recuperare e salvare le immagini dal tuo sito per il suo proxy server. durante il recupero di immagini, GoogleImageProxy trovato alcuni 404 stati contro le vostre immagini mancanti e 403 contro alcune immagini protette. GoogleImagesProxy ha memorizzato questi stati nel proprio server proxy.

    Ora provato ad aprire il tuo indirizzo email, avete notato qualche 404 stati contro le immagini. Questo è qualcosa di comprensibile. Si capì subito che si è dimenticato di caricare alcune immagini, in modo che li ha caricati sul server. e anche aver risolto alcune autorizzazioni contro le immagini protette.

    Si sono tutti fatti ora. Ora si tenta di eseguire il php-e-mail script, ancora una volta. Come risultato riceverai un’altra e-mail in Gmail o Hotmail posta in arrivo. si aveva risolto tutti i problemi con le immagini. Ora le immagini devono essere visualizzate nella e-mail di contenuto. ma si è ancora in grado di vedere le immagini.

    Ah, forse ti sei dimenticato di cancellare la cache del tuo browser. Svuota la cache del browser e caricare il gmail o hotmail pagina, ancora una volta. Ma il risultato sarà sempre lo stesso. Tenta di applicare decine di fix/patch e tenta di eseguire il php-e-mail script migliaia di tempo. Ma il risultato sarà sempre lo stesso. Nessun miglioramento.

    IL VERO PROBLEMA

    Che cosa diavolo sta succedendo? Lasciatemi spiegare a voi. Vai al tuo log di accesso e di provare a trovare delle richieste da GoogleImageProxy. Sarete sorpresi di vedere che ci saranno solo 2 o 3 tre richieste di GoogleImageProxy a seconda del numero di immagini diverse, usato nella e-mail. GoogleImageProxy mai provato a recuperare le immagini, Anche dopo aver risolto i problemi con le immagini da caricare le immagini mancanti e impostazione delle autorizzazioni per le immagini protette. Perché? Svuotare la cache del browser non ha alcun impatto. GoogleImageProxy non potrà mai recuperare le immagini fresche anche per la tua posta elettronica più recente, perché le immagini vengono ora memorizzate nella cache in GoogleImageProxy lungo con il loro ultimo codice di stato e non sono memorizzate nel tuo browser.

    GoogleImageProxy ha messo il suo data di scadenza per le immagini. Penso che un mese. così ora la nuova copia di immagini recuperare dopo la data di scadenza. Voglio dire, dopo un mese. Non puoi costringere GoogleImageProxy per recuperare le immagini. Ma è importante per voi per visualizzare le immagini nella tua e-mail. Che cosa può essere la soluzione?

    LA SOLUZIONE

    Seguenti è l’unico modo per costringere GoogleImageProxy per recuperare le immagini

    • Rinominare le immagini di qualcosa che in png, jpg o gif estensioni
      solo.
    • Non utilizzare qualsiasi tipo di stringa di query nel vostro url di immagine come ?t=34343
    • l’immagine deve includere png, jpg o gif come estensione.
    • il tuo url dell’immagine deve essere mappato su l’immagine direttamente.
    • Se avete bisogno di usare un url del proxy per le immagini protette quindi la tua risposta deve includere la corretta intestazione
      Content-Type: image/jpeg
    • Estensione del File e intestazione content-type deve corrispondere
    • Di stato-il codice deve essere di 200 invece di 403, 500 ecc

    NOTA IMPORTANTE

    Provare a ripetere l’intero processo per ogni esecuzione di php-e-mail script. perché ogni volta che GoogleImageProxy memorizza nella cache le immagini e dovrete ripetere lo stesso processo per ogni nuova prova.

    Spero di risolvere il problema per la maggior parte delle persone.

    • Grazie per l’aggiornamento di questo problema, sembra una vera e propria soluzione possibile. Purtroppo il suo stato anni da quando ho postato questo problema quindi credo che le immagini non sono più presenti sul server proxy, ma la sua buona per avere finalmente una risposta a questa!
    • tl;dr: il tuo probabilmente utilizzando .svg, utilizzare .png .jpg o .gif invece
    • sì, non usare svg 😉
    • Per il problema di GoogleImageProxy la cache di una pagina 404, ho trovato safin chacko soluzione di forzare un aggiornamento del browser ha funzionato per me: stackoverflow.com/a/49292512/1000655 . Io quasi non provare, perchè (credo) accettato risposta dice che avrei dovuto cambiare il nome del file, che posso fare o non fare una mail che ho già accidentalmente inviato. Sono contento GoogleImageProxy è rispettare le richieste del browser per controllare le nuove versioni di immagini!
    • Abbiamo avuto un’immagine di essere servito da Azure Blob Storage che era uno spazio nel nome del file. L’immagine non mostra correttamente in Gmail. Quando abbiamo rimosso lo spazio nel nome del file è stato risolto il problema.
    • perché non usare SVG? Il Logo è il migliore in SVG, no?
    • no non ho modificato l’url dell’immagine prima di fare live a google ho testato se l’immagine è visibile presso il mio browser e poi aggiunto il link al template.

  2. 26

    Basato sul tuo esempio, sembra che si sta utilizzando i tradizionali estensioni (.jpg, .png, .gif). Alcune persone su questo thread, descrivendo gli stessi problemi che si trovano ad affrontare, hanno dichiarato che l’utilizzo di tali estensioni risolve il problema.

    Altre possibili soluzioni:

    • Questi sono un sacco di fonti che ho trovato durante la ricerca di questo problema me, purtroppo nessuno di loro mi danno la risposta che sto cercando. Im sperando che Google risolvere questo problema prima che io riesco a trovare una risposta
    • hai provato a replicare in modo indipendente il problema al di fuori della newsletter? Ho provato sul mio personale e di società di gmail con risultati di successo. So che è un problema, ma forse la creazione di una nuova e-mail con le immagini potrebbero far luce su quello che sta succedendo.
    • Grazie per il suggerimento su estensioni. Stavo usando .svg immagini, e quelle sono le confermato non è supportato da Google proxy.
    • Mi sono imbattuto in questo stesso oggi. Per me, Google proxy stava gettando un errore 500 per 1×1 trasparente pixel.gif. La modifica di questa per un 1×1 trasparente pixel.png e il proxy servito come previsto. Strano.
  3. 7

    Ho avuto un problema simile, ma era causato dalla lunghezza dell’URL. Google genera il seguente URL quando la cache di un’immagine da gmail:

    https://ci4.googleusercontent.com/proxy/[hash]#[url])
    

    L’hash generato è basato sull’URL dell’immagine, ma le dimensioni variano in base a caratteri utilizzati. Ho eseguito diverse prove con diverse dimensioni Url, e trovato il cache immagine, non sarebbe riuscita a carico costante (400/Richiesta non valida) se il hash supera 2076 caratteri (vicino a 2048 byte + meta? non sono sicuro).

    Di nuovo, l’URL dell’immagine potrebbe generare un hash che supera il numero di caratteri a ~1000 caratteri speciali, o 1500+ semplici caratteri. Se l’hash supera 2076 caratteri, la richiesta ha esito negativo.

    Mi rendo conto che questo è un vecchio post, ma spero che questo aiuta gli altri sviluppatori purga Google

  4. 6

    So che questa è una vecchia questione, ma la stessa cosa è successa a me. Quando ho controllato il mio log di accesso, questo è quello che ho trovato –

    www.example.ca 66.249.85.50 - - [10/Apr/2014:17:57:18 -0400] "GET /newsletters/Apr10_2014/cad/cad2.jpg HTTP/1.1" 403 457 "-" "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)" 
    

    Si può vedere che il mio server è stato il blocco del GOOGLEIMAGEPROXY dando un 403 Forbidden risposta. Ho deciso di controllare il mio .htaccess e abbastanza sicuro che mi stava bloccando il termine PROXY. Dopo la rimozione del termine, le immagini appaiono così bene ora su Gmail. Speranza che aiuta.

    • Ho anche avuto un 403. Ho capito che il mod_security sta bloccando il proxy di Google…
    • Questo era esattamente il problema che ho avuto. È possibile verificare se si stanno avendo lo stesso problema di configurazione utilizzando curl: 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
  5. 3

    HTTPS immagine sedi di fare della cache. Molti dei nostri ambienti di produzione non hanno problemi con gmail inoltro immagine di percorsi utilizzando una HTTPS uri. Ho potuto vedere gmail ignorando il contenuto se il certificato SSL non è valido, in qualche modo.

    • Grazie per l’aggiornamento. Anche se era un po ‘ di tempo fa ora non ho mai trovato una soluzione a questa risposta
    • Secondo la mia esperienza attuale, cercando di creare messaggi e-mail html con immagini e con protocolli https, confermo che dipende dal certificato di. Utilizzando let’s encrypt con nessuna organizzazione in essa, l’immagine è bloccata in Gmail. Durante l’utilizzo di un marchio certificato con l’organizzazione incluso, bene l’immagine si presenta. Quindi credo che sia libero vs certificati di marca o l’organizzazione dichiarato in.
  6. 3

    Ho appena provato ,
    dopo la sostituzione della cartuccia (senza cambiare il nome dell’immagine)

    • E-mail aperto nel browser , esso mostra una nuova immagine

    • Ctrl+f5 (forze di aggiornamento della cache) in chrome (il mio browser di default) ,
      mostra anche la nuova immagine

  7. 1

    Verificare che il tipo di contenuto restituito per il file di immagine dal vostro server sia corretto.

    È possibile controllare questo utilizzando Fiddler.

  8. 1

    Nel mio caso la dimensione del file che era il problema, era il 22 Mb (so giusto?), e dopo che abbiamo ridotto le dimensioni di tutto, ha iniziato a lavorare come un fascino.

    Controllare la dimensione del file e se è troppo grande, comprimerlo.

    • Bella cattura. Gmail messaggio di errore lo fa sembrare come se fosse un errore di battitura o autorizzazioni di errore, che è stato molto fuorviante.
  9. 0

    Assicurarsi che Gmail è richiesta la tua immagine su http, non https.

    Diciamo che la vostra immagine normale url è:

    https://www.mysite.com/images/pic1.jpg
    

    Modo da modificare:

    http://www.mysite.com/images/pic1.jpg
    

    Ho una forte sensazione che google proxy non cache https.

    • Buon punto, il sito è sicuramente l’utilizzo di https in modo che possa essere stata la causa
    • “Ho una forte sensazione che google proxy non cache https”. – la tua sensazione è sbagliato
    • Questo ha funzionato! Stavo cercando di copiare e incollare un foglio di calcolo di google cella che conteneva un’immagine esterna in una email, utilizzando il protocollo http come protocollo lavorato.
    • Questo è sbagliato, perché non di google è in grado di memorizzare nella cache le immagini su https?
  10. 0

    Ho una perfetta soluzione di questo problema, che ha funzionato per me se si utilizza PHPMailer poi basta aggiungere un’altra opzione in PHPMailer per il collegamento di immagine come questa

    $mail = new PHPMailer();
    $mail->AddEmbeddedImage('../absolutepath/image/image.jpg', 'logoimg', '../absolutepath/image/image.jpg');

    Qui abbiamo dato il percorso assoluto dell’immagine e dargli un nome, chiamata ‘logoimg’ o quello che si vuole.

    Ora è possibile aggiungere questo logoimg ovunque nel vostro Corpo HTML come questo

    $mail->Body = "
    <h1>Test of PHPMailer html body with image</h1>
    <p>This is a test picture: <img src=\"cid:logoimg\" /></p>";
    $mail->send();

    Che è Tutto.

  11. 0

    Ho avuto questo problema quando avevo l’invio di immagini gif. Ho trovato che la dimensione del file materia di Googles server Proxy. Io suggerisco di fare il file più piccolo possibile, e vedere se funziona. È possibile utilizzare il vostro account Gmail e aggiungere una foto da un URL per il test. Se la gif che mostra quando si sta scrivendo la vostra mail sarà crediti.

    codifica felice.

  12. 0

    So che questa è una vecchia questione, ma ho incontrato questo problema. Nel mio caso le immagini sono conservati presso Google Cloud Storage. Ciò che è interessante è che il link

    https://storage.cloud.google.com/{bla_bla}/logo.png
    

    restituisce 307 (reindirizzamento temporaneo) e Location intestazione contenente qualcosa come

    https://{xxx}-apidata.googleusercontent.com/{bla-bla_bla}/logo.png?{zzz}
    

    Sembra GoogleImageProxy non processo 307 correttamente

    • Questo è molto illeggibile post.
  13. -5

    È il 6 Marzo e probabilmente avete già capito, ma ho pensato di chime per aiutare gli altri. Ho scoperto che i file Jpg non funzionano in gmail. Il formato PNG, funziona alla grande. Mi dispiace non so spiegare perché, ma a volte è meglio non chiedere perché. Utilizzare PNG!

    • Non posso credere che Google avrebbe infatti considerare che una soluzione. A prescindere che ho intenzione di provare, perché le nostre newsletter sono naufragate per i nostri utenti di Gmail.
    • Questo non è vero, gmail non supporta i file jpeg
    • Ho questo problema usando i PNG…
    • downvote per il cargo cult idiocracy
    • Supporta jpg

Lascia un commento