Сообщение электронной почты со статической картой Google не отображается правильно в Gmail - PullRequest
2 голосов
/ 28 марта 2011

Я использую код C # для создания сообщения электронной почты.

В теле сообщения я хочу добавить статическую карту Google.Чтобы создать статический URL, у меня есть следующий код

string addr = "111 Remote Drive  Cary,NC 27511";
string mapU = "http://maps.google.com/maps/api/staticmap?center=" + 
addr + HttpUtility.HtmlEncode("&zoom=14&size=512x512&maptype=roadmap&sensor=false&markers=color:green|") +
 addr;

Эта строка mapU добавляется в тело сообщения в качестве источника для тега img.

Когда электронное письмо отправляется в учетную запись Google Mail, статическое изображение не отображается.Элемент проверки на поврежденном изображении имеет

<img src="http://maps.google.com/maps/api/staticmap?center=111+Remote+Drive++Cary%2CNC+27511%26zoom%3D14%26size%3D512x512%26maptype%3Droadmap%26sensor%3Dfalse%26markers%3Dcolor:green%7C111+Remote+Drive++Cary,NC+27511">

Gmail заменяет '=' на% 3D, что, похоже, нарушает это.

Отправка точно такого же сообщения в Hotmail работает.Изображение отображается в правильном месте, как и ожидалось.Hotmail сохраняет '=' в сохранности.

Есть идеи, что происходит с Gmail?Предложения, как это можно исправить?

Спасибо, Абхи

Ответы [ 2 ]

3 голосов
/ 11 марта 2014

Похоже, ваша кодировка немного неправильная - вы хотите закодировать отдельные значения, а не всю строку запроса.

Что еще важнее, Google приводит здесьдля термина "google maps static gmail", поэтому я хотел бы также предложить этот совет:

  • Чтобы включить статическую карту и показать ее в GMail, вы должны использовать ключ API

например,

<img src="https://maps.googleapis.com/maps/api/staticmap?key=KEY&sensor=false&size=200x200&zoom=12&markers=0,0" />

Мне бы хотелось, чтобы у меня был документ для поддержки этого (если он существует) или даже ссылка на ветку, где я впервые его прочитал, чтобы я могдать правильную атрибуцию - отредактируйте, если знаете.В любом случае, у меня это сработало!

1 голос
/ 06 августа 2011

Может быть, по какой-то причине URL-кодирование работает некорректно ... или приводит к тому, что gmail начинает волноваться о чем-то ...

Удалите кодирование и вручную замените & на &, и все должно быть в порядке..

Извините, не самое элегантное решение ...

РЕДАКТИРОВАТЬ:

На самом деле я не знаю, имеет ли это значение или нет ... но вы не кодируетеfirst = возможно закодировать весь URL после того, как вы его создали ...: -)

...