J'ai des e-mails automatiques qui sont envoyés une fois l'inscription terminée pour mon site.
Jusqu'à récemment, ils fonctionnaient bien. Maintenant, le nouveau système de Google réécrit les images et les stocke dans son cache (soi-disant)
Cependant, la nouvelle réécriture par Google de mes liens d'image les brise complètement, donnant une erreur 500 et une image de lien cassée.
Disons que mon URL d'image normale est:
http://www.mysite.com/images/pic1.jpg
Google réécrit ceci pour:
https://ci5.googleusercontent.com/proxy/vI79kajdUGm6Wk-fjyicDLjZbCB1w9NfkoZ-zQFOB2OpJ1ILmSvfvHmE56r72us5mIuIXCFiO3V8rgkZOjfhghTH0R07BbcQy5g=s0-d-e1-ft#http://www.mysite.com/images/pic1.jpg
Cependant, il n'y a rien à cette URL.
Donc, soit il y a quelque chose qui ne va pas avec les liens créés par Google, soit les images ne sont tout simplement pas téléchargées sur le serveur googleusercontent, mais je n'ai aucune idée de comment résoudre le problème.
J'utilise PHP, la bibliothèque phpmailer et un serveur Ubuntu sur Amazon EC2, mais je ne suis pas sûr que cela soit lié au problème.
Réponses:
Je pense avoir résolu le problème de GoogleImageProxy.
C'est quelque chose lié au concept CACHING. Supposons que vous ayez récemment déployé votre code php sur votre serveur mais que vous avez oublié de télécharger des images. vous avez testé une fois avec votre logique de messagerie. votre système a généré un e-mail HTML. Lorsque cet e-mail atteindra le serveur Gmail, GoogleImageProxy essaiera de récupérer et de stocker les images de votre site sur son propre serveur proxy. lors de la récupération des images, GoogleImageProxy a trouvé 404 statuts contre vos images manquantes et 403 contre certaines images protégées. GoogleImagesProxy a stocké ces statuts dans son propre serveur proxy.
Maintenant essayé d'ouvrir votre e-mail, vous avez remarqué quelques états 404 par rapport à vos images. C'est quelque chose de compréhensible. Vous vous êtes immédiatement rendu compte que vous aviez oublié de télécharger certaines images, vous les avez donc téléchargées sur votre serveur. et vous avez également fixé certaines autorisations contre les images protégées.
Vous avez tous fini maintenant. Maintenant, vous essayez d'exécuter à nouveau votre script php-email. En conséquence, vous recevez un autre e-mail dans votre boîte de réception Gmail ou Hotmail. vous aviez résolu tous les problèmes avec vos images. Maintenant, les images doivent être affichées dans le contenu de votre e-mail. mais vous ne pouvez toujours pas voir les images.
Ah, vous avez peut-être oublié de vider le cache de votre navigateur. Videz le cache de votre navigateur et chargez à nouveau la page gmail ou hotmail. Mais le résultat sera toujours le même. Essayez d'appliquer des dizaines de correctifs / correctifs et essayez d'exécuter votre script php-email des milliers de fois. Mais le résultat sera toujours le même. Pas d'amélioration.
LE VRAI PROBLÈME
Que diable se passe-t-il? Laissez-moi vous l'expliquer. Accédez à votre journal d'accès et essayez de trouver des demandes de GoogleImageProxy. Vous serez surpris de voir qu'il n'y aura que 2 ou 3 demandes de GoogleImageProxy en fonction du nombre d'images différentes utilisées dans votre e-mail. GoogleImageProxy n'a jamais essayé de récupérer des images même après avoir résolu les problèmes avec vos images en téléchargeant les images manquantes et en définissant les autorisations pour les images protégées. Pourquoi? Effacer le cache de votre navigateur n'a aucun impact. GoogleImageProxy ne récupérera jamais les images fraîches, même pour votre nouvel e-mail, car les images sont maintenant mises en cache dans GoogleImageProxy avec leur dernier code d'état et ne sont pas mises en cache dans votre propre navigateur.
GoogleImageProxy a défini sa propre date d'expiration pour les images. Je pense un mois. alors maintenant, la nouvelle copie des images sera récupérée après la date d'expiration. Je veux dire après un mois. Vous ne pouvez pas forcer GoogleImageProxy à récupérer les images. Mais il est important pour vous d'afficher des images dans votre e-mail. Quelle peut être la solution?
LA SOLUTION
Voici le seul moyen de forcer GoogleImageProxy à récupérer vos images
?t=34343
Content-Type: image/jpeg
NOTE IMPORTANTE
Essayez de répéter l'ensemble du processus pour chaque exécution de script php-email. car chaque fois que GoogleImageProxy mettra en cache vos images et vous devrez répéter le même processus pour chaque nouvel essai.
Espérons que cela résoudra le problème pour la plupart des gens.
la source
D'après votre exemple, il semble que vous utilisiez des extensions traditionnelles (.jpg, .png, .gif). Certaines personnes sur ce fil , décrivant les mêmes problèmes que vous rencontrez, ont déclaré que l'utilisation de ces extensions résout le problème.
Autres solutions possibles:
la source
.svg
images, et il est confirmé que celles-ci ne sont pas prises en charge par le proxy de Google.pixel.gif
. En changeant cela en un transparent 1x1pixel.png
et le proxy a servi comme prévu. Bizarre.J'avais un problème similaire, mais il était dû à la longueur de l'URL. Google génère l'URL suivante lors de la mise en cache d'une image depuis Gmail:
Le hachage généré est basé sur l'URL de l'image, mais la taille varie en fonction des caractères utilisés. J'ai exécuté plusieurs tests avec des URL de tailles différentes et j'ai trouvé que l'image mise en cache ne se chargerait pas de manière cohérente (400 / demande invalide) si le hachage dépassait 2076 caractères (près de 2048 octets + méta? Pas sûr).
Encore une fois, l'URL de l'image peut générer un hachage qui dépasse ce nombre de caractères à ~ 1000 caractères spéciaux, ou plus de 1500 caractères simples. Si le hachage dépasse 2076 caractères, la demande échoue.
Je me rends compte que c'est un ancien message, mais j'espère que cela aidera d'autres développeurs à parcourir Google
la source
Je sais que c'est une vieille question mais la même chose m'est arrivée. Lorsque j'ai vérifié mes journaux d'accès, c'est ce que j'ai trouvé -
Vous pouvez voir que mon serveur bloquait GOOGLEIMAGEPROXY en lui donnant une réponse 403 Forbidden . J'ai décidé de vérifier mon .htaccess et bien sûr, je bloquais le terme PROXY . Après avoir supprimé le terme, les images apparaissent très bien maintenant sur Gmail. J'espère que cela pourra aider.
la source
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
Les emplacements d'image HTTPS font du cache. Plusieurs de nos environnements de production n'ont aucun problème avec le proxy gmail d'emplacements d'image à l'aide d'un uri HTTPS. Je pourrais voir gmail ignorer votre contenu si le certificat SSL n'est pas valide d'une manière ou d'une autre.
la source
J'ai juste essayé, après avoir remplacé l'image (sans changer le nom de l'image)
Ouvrez l'email dans un nouveau navigateur, il montre une nouvelle image
Ctrl + f5 (force une actualisation du cache) dans le chrome (mon navigateur par défaut), montre également une nouvelle image
la source
Vérifiez que le type de contenu renvoyé pour le fichier image par votre serveur est correct.
Vous pouvez vérifier cela en utilisant Fiddler.
la source
Dans mon cas, la taille du fichier était le problème, c'était 22 Mo (je sais, non?), Et après avoir réduit la taille, tout a commencé à fonctionner comme un charme.
Vérifiez la taille du fichier et s'il est trop gros, compressez-le.
la source
Je sais que c'est une vieille question mais j'ai rencontré ce problème. Dans mon cas, les images sont stockées sur Google Cloud Storage. Ce qui est intéressant, c'est ce lien
renvoie 307 (redirection temporaire) et un en-
Location
tête contenant quelque chose commeOn dirait que GoogleImageProxy ne traite pas correctement 307
la source
J'ai une solution parfaite à ce problème, qui a fonctionné pour moi si vous utilisez PHPMailer, il vous suffit d'ajouter une autre option dans PHPMailer pour attacher une image comme celle-ci
$mail = new PHPMailer(); $mail->AddEmbeddedImage('../absolutepath/image/image.jpg', 'logoimg', '../absolutepath/image/image.jpg');
Ici, nous avons donné le chemin absolu de l'image et lui donner un nom appelé «logoimg» ou ce que vous voulez.
Vous pouvez maintenant ajouter ce logoimg n'importe où dans votre corps HTML comme ceci
$mail->Body = " <h1>Test of PHPMailer html body with image</h1> <p>This is a test picture: <img src=\"cid:logoimg\" /></p>"; $mail->send();
C'est tout.
la source
url add auto https://ci3.googleusercontent.com/proxy/jTpYlM6RUv7Wi8Hxjha4fzExKFy9mjyh133MKKfo3FuV3toLToG6zJcA0IAdIMEW75pY6pkEd2aOSVhWi8Hxjha4fzExKFy9mjyh133MKKfo3FuV3toLToG6zJcA0IAdIMEW75pY6pkEd2aOSVhWuQa82m -24mH- Ed2aOSVhWUQA82M- 24MH- Ed2aOSVhWuQPA82m- 24H- Ed2aOSVhWUQPA82m- 24H- VH- VH- VH- E- G - E- G- E- G- E- G- VH- V- H- B- B
la source
J'ai eu ce problème lorsque j'envoyais des gifs. J'ai trouvé que la taille du fichier était importante pour le serveur proxy de Googles. Je suggère de rendre les fichiers aussi petits que possible et de voir si cela fonctionne. Vous pouvez utiliser votre compte Gmail et ajouter une photo à partir d'une URL à tester. Si le gif apparaît lorsque vous rédigez votre e-mail, il sera recevable.
bon codage.
la source
la source
Dans mon cas de rencontrer ce problème, le problème était que accidentellement le chemin d'accès à l'image dans le modèle de courrier électronique avait des barres obliques triples dans l'URL, par exemple
https:///content.example.org/image.png
. C'était difficile à repérer, et alors qu'il fonctionnait dans d'autres clients de messagerie qui pouvaient résoudre avec succès l'URL, le proxy d'image de Google n'a pas été en mesure de le gérer et a abouti à un 404 pour l'adresse d'image mandatée.la source
Assurez-vous que Gmail demande votre image
http
, nonhttps
.Disons que votre URL d'image normale est:
Alors changez pour:
J'ai le fort sentiment que le proxy de Google ne cache pas
https
.la source
Nous sommes le 6 mars et vous avez probablement déjà compris cela, mais j'ai pensé que je voudrais aider les autres. J'ai découvert que les JPG ne fonctionnent pas dans gmail. Le format PNG fonctionne très bien. Désolé, je ne peux pas expliquer pourquoi, mais parfois il vaut mieux ne pas demander pourquoi. Utilisez PNG!
la source