В почте Gmail вставить свои плюсы в пути src изображений в HTML-письма
Моя ситуация:
Я успешно отправляю html-письма. Стили, шрифты и большинство изображений отображаются в соответствии с планом.
Но некоторые изображения из предварительных просмотров продуктов были нарушены скриптами прокси-сервера google mail. Есть около 6 изображений на электронную почту размером 100x100px каждое. Вокруг 10% из них ломаются-так как нет изображения вообще у источника (потому что в адресе появляется символ+).
Проверка кода помогает мне только догадываться о причине, но не полностью исправить ее для мне.
Мой src, который я отправляю по электронной почте:
<img src="http://www.example.com/for_email/products_images/690/690xxxxxxx.jpg">
Google Mail изменяет его при показе пользователю на:
<img src="https://ci5.googleusercontent.com/proxy/iyxxxuR-nG_Gst2xxxYN1-Qjxxx06hEE=s0-d-e1-ft#http://www.example.com/for_email/products_images/690/690xxxxxxx.jpg">
И все работает хорошо, но в 10% у меня есть эти сломанные ссылки :
<img src="https://ci5.googleusercontent.com/proxy/iyxxxuR-nG_Gst2xxxYN1-Qjxxx06hEE=s0-d-e1-ft#http://www.example.com/for_e+mail/products_images/690/690xxxxxxx.jpg">
<img src="https://ci5.googleusercontent.com/proxy/iyxxxuR-nG_Gst2xxxYN1-Qjxxx06hEE=s0-d-e1-ft#http://www.example.com/for_email/products_images/690/690xxx+xxxx.jpg">
<img src="https://ci5.googleusercontent.com/proxy/iyxxxuR-nG_Gst2xxxYN1-Qjxxx06hEE=s0-d-e1-ft#http://www.example.com/for_email/products_images/690/690xxxxxxx.j+pg">
Посмотрите на эти плюсы:
/for_e+mail/products_images/690/690xxxxxxx.jpg
/for_email/products_images/690/690xxx+xxxx.jpg
/for_email/products_images/690/690xxxxxxx.j+pg
Что я пытаюсь исправить:
Перенаправление . В адресах, подобных этому /for_email / products_images/690/690xxxxxxx.j+pg я просто перенаправляю на /for_email / products_images/690/690xxxxxxx.jpg после удаления +. Но это не решение для ошибок, таких как /for_email/products_images/690/690xxx+xxxx.jpg, потому что nginx работает с такими файлами, и я не буду изменять его по такой незначительной причине.
Меньшая длина . Чтобы исправить это, я также изменяю образы имен. Ранее это был хэш md5, подобный этому.
7c6a78c6ac5a6c56ac56a5c67ac5a6c57a65c67ac567a.jpg
И теперь это
6657435previmg.jpg
Это помогает снизить процент сломанной ссылки до половины, но не полностью.
У меня есть эта проблема для pretty очень давно: около полугода и время от времени пытаюсь решить ее, когда есть свободное время. Гугл все еще не помогает мне, я надеюсь, что вы делаете это.
Я отправляю его через PHP на 1С-Битрикс, но я не думаю, что это имеет значение (но не совсем уверен).
2 ответов:
Вы смотрели на закодированную почту, которую рассылает ваш почтовый сервер?
Другими словами, что на самом деле получает GMail? Просто отправьте ту же самую почту, используя точно такой же метод, в один из ваших собственных почтовых ящиков и используйте инструмент для проверки полного источника почты.
Причина, по которой я говорю это, заключается в том, что GMail обычно вставляет знаки плюса, когда в URL есть пробел.
Вы должны быть абсолютно уверены, что это не ваш конец, вставляя их. Просто смотрю на то, что ты задумал. посылать в этом случае недостаточно.
Я могу только догадываться, почему пробелы появятся в вашем выводе. Все зависит от того, как вы отправляете электронные письма. Обычно это вызвано преобразованием или кодированием / декодированием.
Благодаря @Kiko Software и его ответу я нашел, в чем была проблема!
Таблица продуктов была добавлена в одну длинную строку HTML.
И мой почтовый серверразделяют эту строку с символами \n Перед отправкой. Это разбиение может быть где угодно: в середине любого слова (слово будет разбито); в любом стиле (стили будут разбиты); и даже в URL-адресах к изображениям src (разбитые изображения).
Решение простое: я просто добавляю "\n\r " везде в этом стол продуктов и все прекрасно теперь.
Comments