Saya mendapat beberapa email otomatis yang dikirim setelah menyelesaikan pendaftaran untuk situs saya.
Sampai saat ini, mereka bekerja dengan baik. Sekarang sistem baru Google sedang menulis ulang gambar dan menyimpannya dalam cache (seharusnya)
Namun, Google yang baru menulis ulang tautan gambar saya benar-benar merusaknya, memberikan kesalahan 500 dan gambar tautan rusak.
Katakanlah url gambar normal saya adalah:
http://www.mysite.com/images/pic1.jpg
Google menulis ulang ini menjadi:
https://ci5.googleusercontent.com/proxy/vI79kajdUGm6Wk-fjyicDLjZbCB1w9NfkoZ-zQFOB2OpJ1ILmSvfvHmE56r72us5mIuIXCFiO3V8rgkZOjfhghTH0R07BbcQy5g=s0-d-e1-ft#http://www.mysite.com/images/pic1.jpg
Namun, tidak ada apa pun di URL itu.
Jadi, entah ada yang salah dengan tautan yang dibuat oleh Google atau gambarnya tidak diunggah ke server konten google, tapi saya tidak tahu bagaimana mengatasi masalah tersebut.
Saya menggunakan PHP, pustaka phpmailer, dan server Ubuntu di Amazon EC2, tetapi saya tidak yakin itu terkait dengan masalah tersebut.
Jawaban:
Saya rasa saya telah menemukan masalah GoogleImageProxy.
Ini adalah sesuatu yang terkait dengan konsep CACHING. misalkan, Anda baru-baru ini menyebarkan kode php Anda di server Anda tetapi Anda lupa mengunggah gambar. Anda menguji sekali dengan logika email Anda. sistem Anda menghasilkan email HTML. Saat email ini masuk ke server gmail, GoogleImageProxy akan mencoba mengambil dan menyimpan gambar dari situs Anda ke server proxynya sendiri. saat mengambil gambar, GoogleImageProxy menemukan 404 status pada gambar yang hilang dan 403 pada beberapa gambar yang dilindungi. GoogleImagesProxy telah menyimpan status ini ke server proxy-nya sendiri.
Sekarang coba buka email Anda, Anda melihat beberapa 404 status pada gambar Anda. Ini adalah sesuatu yang bisa dimengerti. Anda segera menyadari bahwa Anda lupa mengunggah beberapa gambar, jadi Anda mengunggahnya ke server Anda. dan juga Anda telah memperbaiki beberapa izin terhadap gambar yang dilindungi.
Anda sudah selesai sekarang. Sekarang Anda mencoba menjalankan skrip php-email Anda sekali lagi. Hasilnya, Anda menerima email lain di kotak masuk Gmail atau Hotmail Anda. Anda telah memperbaiki semua masalah dengan gambar Anda. Sekarang gambar harus ditampilkan di konten email Anda. tetapi Anda masih tidak dapat melihat gambarnya.
Ah, mungkin Anda lupa membersihkan cache browser Anda. Kosongkan cache browser Anda dan muat halaman gmail atau hotmail sekali lagi. Tapi hasilnya akan tetap sama. Coba terapkan lusinan perbaikan / tambalan dan coba jalankan skrip php-email Anda ribuan kali. Tapi hasilnya akan tetap sama. Tidak ada perbaikan.
MASALAH NYATA
Apa yang sedang terjadi? Biarkan saya menjelaskannya kepada Anda. Buka log akses Anda dan coba temukan permintaan dari GoogleImageProxy. Anda akan terkejut melihat bahwa hanya akan ada 2 atau 3 tiga permintaan dari GoogleImageProxy tergantung pada jumlah gambar berbeda yang digunakan di email Anda. GoogleImageProxy tidak pernah mencoba mengambil gambar Bahkan setelah Anda memperbaiki masalah dengan gambar Anda dengan mengupload gambar yang hilang dan mengatur izin untuk gambar yang dilindungi. Mengapa? Menghapus cache browser Anda tidak berdampak apa-apa. GoogleImageProxy tidak akan pernah mengambil gambar baru bahkan untuk email Anda yang lebih baru karena gambar sekarang di-cache ke GoogleImageProxy bersama dengan kode status terakhirnya dan tidak di-cache di browser Anda sendiri.
GoogleImageProxy telah menyetel tanggal kedaluwarsa sendiri untuk gambar tersebut. Saya pikir satu bulan. jadi sekarang salinan gambar baru akan diambil setelah tanggal kedaluwarsa. Maksud saya setelah satu bulan. Anda tidak dapat memaksa GoogleImageProxy untuk mengambil gambar. Tetapi penting bagi Anda untuk menampilkan gambar di email Anda. Apa solusinya?
SOLUSINYA
Berikut adalah satu-satunya cara untuk memaksa GoogleImageProxy mengambil gambar Anda
?t=34343
Content-Type: image/jpeg
CATATAN PENTING
Coba ulangi seluruh proses untuk setiap menjalankan skrip php-email. karena setiap kali GoogleImageProxy akan menyimpan gambar Anda dan Anda harus mengulangi proses yang sama untuk setiap percobaan baru.
Semoga ini akan memperbaiki masalah bagi kebanyakan orang.
sumber
Berdasarkan contoh Anda, sepertinya Anda menggunakan ekstensi tradisional (.jpg, .png, .gif). Beberapa orang di utas ini , menjelaskan masalah yang sama yang Anda hadapi, telah menyatakan bahwa menggunakan ekstensi tersebut menyelesaikan masalah.
Solusi lain yang mungkin:
sumber
.svg
gambar, dan itu dipastikan tidak didukung oleh proxy Google.pixel.gif
. Mengubah ini menjadi transparan 1x1pixel.png
dan proxy disajikan seperti yang diharapkan. Aneh.Saya mengalami masalah serupa, tetapi itu disebabkan oleh panjangnya URL. Google menghasilkan URL berikut saat menyimpan gambar dari gmail:
Hash yang dihasilkan didasarkan pada URL gambar, tetapi ukurannya akan bervariasi berdasarkan karakter yang digunakan. Saya menjalankan beberapa tes dengan URL dengan ukuran berbeda, dan menemukan gambar yang di-cache akan gagal dimuat secara konsisten (400 / Permintaan Tidak Valid) jika panjang hash melebihi 2076 karakter (mendekati 2048 byte + meta? Tidak yakin).
Sekali lagi, URL gambar dapat menghasilkan hash yang melebihi banyak karakter ini pada ~ 1000 karakter khusus, atau 1500+ karakter sederhana. Jika panjang hash melebihi 2.076 karakter, permintaan gagal.
Saya menyadari ini adalah posting lama, tapi semoga ini membantu devs lain menjelajahi Google
sumber
Saya tahu ini adalah pertanyaan lama tetapi hal yang sama terjadi pada saya. Ketika saya memeriksa log akses saya, inilah yang saya temukan -
Anda dapat melihat bahwa server saya memblokir GOOGLEIMAGEPROXY dan memberinya balasan 403 Forbidden . Saya memutuskan untuk memeriksa .htaccess saya dan cukup yakin saya memblokir istilah PROXY . Setelah menghapus istilah tersebut, gambar muncul dengan baik sekarang di Gmail. Semoga membantu.
sumber
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
Lokasi gambar HTTPS melakukan cache. Beberapa lingkungan produksi kami tidak memiliki masalah dengan lokasi gambar proxy gmail yang menggunakan uri HTTPS. Saya dapat melihat gmail mengabaikan konten Anda jika sertifikat SSL tidak valid dalam beberapa hal.
sumber
Saya baru mencoba, setelah mengganti gambar (tanpa mengubah nama gambar)
Buka email di browser baru, itu menunjukkan gambar baru
Ctrl + f5 (memaksa penyegaran cache) di chrome (browser default saya), juga menampilkan gambar baru
sumber
Periksa apakah tipe konten yang dikembalikan untuk file gambar oleh server Anda sudah benar.
Anda dapat memeriksanya menggunakan Fiddler.
sumber
Dalam kasus saya ukuran file adalah masalahnya, itu adalah 22 Mb (saya tahu kan?), Dan setelah kami mengurangi ukuran semuanya mulai bekerja seperti pesona.
Periksa ukuran file dan jika terlalu besar, kompres.
sumber
Saya tahu ini adalah pertanyaan lama tetapi saya telah menemui masalah ini. Dalam kasus saya, gambar disimpan di Google Cloud Storage. Yang menarik adalah tautan itu
mengembalikan 307 (pengalihan sementara) dan
Location
header yang berisi sesuatu sepertiSepertinya GoogleImageProxy tidak memproses 307 dengan benar
sumber
Saya memiliki solusi sempurna untuk masalah ini, yang berhasil untuk saya jika Anda menggunakan PHPMailer maka Anda hanya perlu menambahkan opsi lain di PHPMailer untuk melampirkan gambar seperti ini
$mail = new PHPMailer(); $mail->AddEmbeddedImage('../absolutepath/image/image.jpg', 'logoimg', '../absolutepath/image/image.jpg');
Di sini kami telah memberikan jalur gambar absolut dan memberinya nama panggilan 'logoimg' atau apa pun yang Anda inginkan.
Sekarang Anda dapat menambahkan logoimg ini ke mana pun di Tubuh HTML Anda seperti ini
$mail->Body = " <h1>Test of PHPMailer html body with image</h1> <p>This is a test picture: <img src=\"cid:logoimg\" /></p>"; $mail->send();
Itu saja.
sumber
url tambahkan otomatis https://ci3.googleusercontent.com/proxy/jTpYlM6RUv7Wi8Hxjha4fzExKFy9mjyh133MKKfo3FuV3toLToG6zJcA0IAdIMEW75pY6pkEd2aIMOSVhWIn0A82q-24YaAd-6VhWIn0A82q-24YaAd-
sumber
Saya mengalami masalah ini saat mengirim gif. Saya menemukan bahwa ukuran file penting bagi server Proxy Google. Saya sarankan membuat file sekecil mungkin dan lihat apakah itu berfungsi. Anda dapat menggunakan akun Gmail Anda dan menambahkan foto dari URL untuk diuji. Jika gif muncul saat Anda menulis email, itu akan diterima.
selamat coding.
sumber
sumber
Dalam kasus saya mengalami masalah ini, masalahnya adalah jalur ke gambar di template email secara tidak sengaja memiliki garis miring tiga kali lipat di URL, mis
https:///content.example.org/image.png
. Ini sulit dikenali, dan saat berfungsi di klien email lain yang berhasil menyelesaikan URL, proxy gambar Google tidak dapat menanganinya dan menghasilkan 404 untuk alamat gambar yang diproksikan.sumber
Pastikan bahwa Gmail meminta gambar Anda
http
, bukanhttps
.Katakanlah url gambar normal Anda adalah:
Jadi ubah ke:
Saya merasa kuat bahwa proxy Google tidak menyimpan cache
https
.sumber
Sekarang tanggal 6 Maret dan Anda mungkin sudah mengetahui hal ini, tetapi saya pikir saya akan ikut membantu orang lain. Saya menemukan bahwa JPG tidak berfungsi di gmail. Format PNG berfungsi dengan baik. Maaf saya tidak bisa menjelaskan kenapa, tapi terkadang lebih baik tidak bertanya kenapa. Gunakan PNG!
sumber