У меня есть несколько автоматических писем, которые отправляются после завершения регистрации на моем сайте.
До недавнего времени они работали нормально. Теперь новая система Google переписывает изображения и сохраняет их в кеше (предположительно).
Тем не менее, новое изменение Google ссылок на мои изображения полностью нарушает их, давая ошибку 500 и неработающее изображение ссылки.
Допустим, мой нормальный URL-адрес изображения:
http://www.mysite.com/images/pic1.jpg
Google переписывает это так:
https://ci5.googleusercontent.com/proxy/vI79kajdUGm6Wk-fjyicDLjZbCB1w9NfkoZ-zQFOB2OpJ1ILmSvfvHmE56r72us5mIuIXCFiO3V8rgkZOjfhghTH0R07BbcQy5g=s0-d-e1-ft#http://www.mysite.com/images/pic1.jpg
Однако по этому URL-адресу ничего нет.
Итак, либо что-то не так со ссылками, которые создаются Google, либо изображения просто не загружаются на сервер googleusercontent, но я не знаю, как решить эту проблему.
Я использую PHP, библиотеку phpmailer и сервер Ubuntu на Amazon EC2, но я не уверен, что это связано с проблемой.
Ответы:
Я думаю, что разобрался с проблемой GoogleImageProxy.
Это что-то связано с концепцией CACHING. Предположим, вы недавно развернули свой php-код на своем сервере, но забыли загрузить изображения. вы однажды протестировали логику электронной почты. ваша система сгенерировала электронное письмо в формате HTML. Когда это письмо попадет на сервер Gmail, GoogleImageProxy попытается получить и сохранить изображения с вашего сайта на своем собственном прокси-сервере. при загрузке изображений GoogleImageProxy обнаружил около 404 статусов для ваших отсутствующих изображений и 403 для некоторых защищенных изображений. GoogleImagesProxy сохранил эти статусы на своем собственном прокси-сервере.
Теперь попытался открыть свою электронную почту, вы заметили 404 статуса для ваших изображений. Это что-то понятно. Вы сразу поняли, что забыли загрузить некоторые изображения, поэтому вы загрузили их на свой сервер. а также вы установили некоторые разрешения для защищенных изображений.
Теперь все готово. Теперь вы снова пытаетесь запустить свой скрипт php-email. В результате вы получите еще одно письмо в почтовый ящик Gmail или Hotmail. вы устранили все проблемы с вашими изображениями. Теперь изображения должны отображаться в вашем электронном письме. но вы по-прежнему не видите изображения.
А, возможно, вы забыли очистить кеш браузера. Очистите кеш браузера и снова загрузите страницу Gmail или Hotmail. Но результат будет все тот же. Попробуйте применить десятки исправлений / патчей и попробуйте запустить свой скрипт php-email тысячи раз. Но результат будет все тот же. Без улучшения.
НАСТОЯЩАЯ ПРОБЛЕМА
Что, черт возьми, происходит? Позвольте мне вам это объяснить. Зайдите в свой журнал доступа и попробуйте найти запросы от GoogleImageProxy. Вы будете удивлены, увидев, что от GoogleImageProxy будет всего 2 или 3 трех запроса в зависимости от количества различных изображений, используемых в вашем письме. GoogleImageProxy никогда не пытался получить изображения даже после того, как вы устранили проблемы с изображениями, загрузив отсутствующие изображения и установив разрешения для защищенных изображений. Зачем? Очистка кеша вашего браузера не влияет. GoogleImageProxy никогда не получит свежие изображения даже для вашей новой электронной почты, потому что изображения теперь кэшируются в GoogleImageProxy вместе с их последним кодом состояния, а не кешируются в вашем собственном браузере.
GoogleImageProxy устанавливает собственную дату истечения срока действия изображений. Думаю один месяц. так что теперь новая копия изображений будет получена по истечении срока годности. Я имею в виду через месяц. Вы не можете заставить GoogleImageProxy получать изображения. Но для вас важно отображать изображения в электронной почте. Что может быть решением?
РЕШЕНИЕ
Ниже приведен единственный способ заставить GoogleImageProxy получать ваши изображения.
?t=34343
Content-Type: image/jpeg
ВАЖНАЯ ЗАМЕТКА
Попробуйте повторять весь процесс для каждого запуска скрипта php-email. потому что каждый раз GoogleImageProxy будет кэшировать ваши изображения, и вам придется повторять один и тот же процесс для каждой новой попытки.
Надеюсь, это решит проблему для большинства людей.
источник
Судя по вашему примеру, похоже, что вы используете традиционные расширения (.jpg, .png, .gif). Некоторые люди в этой теме , описывая те же проблемы, с которыми вы сталкиваетесь, заявили, что использование этих расширений решает проблему.
Другие возможные решения:
источник
.svg
изображения, и подтверждено, что они не поддерживаются прокси-сервером Google.pixel.gif
. Изменив его на прозрачный 1x1,pixel.png
прокси-сервер заработал, как ожидалось. Странно.У меня была аналогичная проблема, но она была вызвана длиной URL-адреса. Google генерирует следующий URL-адрес при кешировании изображения из Gmail:
Сгенерированный хеш основан на URL-адресе изображения, но размер будет зависеть от используемых символов. Я провел несколько тестов с URL-адресами разного размера и обнаружил, что кэшированное изображение не будет загружаться последовательно (400 / Invalid Request), если хэш длина превышает 2076 символов (близко к 2048 байтам + мета? Не уверен).
Опять же, URL-адрес изображения может генерировать хэш, который превышает это количество символов на ~ 1000 специальных символов или более 1500 простых символов. Если длина хэша превышает 2076 символов, запрос не выполняется.
Я понимаю, что это старый пост, но, надеюсь, это поможет другим разработчикам искать в Google
источник
Я знаю, что это старый вопрос, но со мной случилось то же самое. Когда я проверил свои журналы доступа, вот что я обнаружил -
Вы можете видеть, что мой сервер блокировал GOOGLEIMAGEPROXY, давая ему ответ 403 Forbidden . Я решил проверить свой .htaccess и, конечно же, заблокировал термин ПРОКСИ . После удаления термина изображения теперь отображаются в Gmail нормально. Надеюсь, это поможет.
источник
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
Расположение изображений HTTPS кешируется. Некоторые из наших производственных сред не имеют проблем с gmail проксированием местоположений изображений с использованием HTTPS uri. Я мог видеть, как Gmail игнорирует ваш контент, если сертификат SSL каким-то образом недействителен.
источник
Я только что попробовал, после замены изображения (без изменения имени изображения)
Откройте электронную почту в новом браузере, появится новое изображение
Ctrl + f5 (принудительное обновление кеша) в Chrome (мой браузер по умолчанию), также показывает новое изображение
источник
Убедитесь, что тип содержимого, возвращаемый для файла изображения вашим сервером, правильный.
Вы можете проверить это с помощью Fiddler.
источник
В моем случае проблема была в размере файла, он был 22 Мб (я правильно знаю?), И после того, как мы уменьшили размер, все стало работать как шарм.
Проверьте размер файла и, если он слишком большой, сожмите его.
источник
Я знаю, что это старый вопрос, но я столкнулся с этой проблемой. В моем случае изображения хранятся в Google Cloud Storage. Что интересно, это ссылка
возвращает 307 (временное перенаправление) и
Location
заголовок, содержащий что-то вродеПохоже, GoogleImageProxy некорректно обрабатывает 307
источник
У меня есть идеальное решение этой проблемы, которое сработало для меня, если вы используете PHPMailer, тогда вам просто нужно добавить еще одну опцию в PHPMailer для прикрепления такого изображения
$mail = new PHPMailer(); $mail->AddEmbeddedImage('../absolutepath/image/image.jpg', 'logoimg', '../absolutepath/image/image.jpg');
Здесь мы указали абсолютный путь изображения и дали ему имя, называемое «logoimg» или как хотите.
Теперь вы можете добавить этот логотип в любое место вашего HTML-кода следующим образом
$mail->Body = " <h1>Test of PHPMailer html body with image</h1> <p>This is a test picture: <img src=\"cid:logoimg\" /></p>"; $mail->send();
Вот и все.
источник
URL-адрес добавить автоматически https://ci3.googleusercontent.com/proxy/jTpYlM6RUv7Wi8Hxjha4fzExKFy9mjyh133MKKfo3FuV3toLToG6zJcA0IAdIMEW75pY6pkEd2aOSVhWIn0Avi03-64-64-64-64-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa дня
источник
У меня была эта проблема, когда я отправлял гифки. Я обнаружил, что размер файла имеет значение для прокси-сервера Googles. Я предлагаю сделать файлы как можно меньше и посмотреть, сработает ли это. Вы можете использовать свою учетную запись Gmail и добавить фотографию с URL-адреса для тестирования. Если гифка появится, когда вы пишете письмо, ее можно будет получить.
счастливого кодирования.
источник
источник
В моем случае столкновения с этой проблемой проблема заключалась в том, что случайно путь к изображению в шаблоне электронной почты имел тройные косые черты в URL-адресе, например
https:///content.example.org/image.png
. Это было трудно обнаружить, и хотя он работал в других почтовых клиентах, которые могли успешно разрешить URL-адрес, прокси-сервер изображений Google не смог его обработать и привел к 404 для прокси-адреса изображения.источник
Убедитесь, что Gmail запрашивает ваше изображение
http
, а неhttps
.Допустим, ваш обычный URL-адрес изображения:
Так что измените на:
У меня есть сильное чувство, что прокси Google не кеширует
https
.источник
Это 6 марта, и вы, наверное, уже догадались, но подумали, что я вмешаюсь, чтобы помочь другим. Я обнаружил, что файлы JPG не работают в Gmail. Формат PNG отлично работает. Извините, я не могу объяснить почему, но иногда лучше не спрашивать почему. Используйте PNG!
источник