静态Google地图无法在Gmail中正确显示的电子邮件

时间:2011-03-27 23:20:56

标签: c# gmail html-email

我正在使用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标记的src添加到消息正文中。

当电子邮件发送到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的动态是什么?建议如何解决这个问题?

由于 ABHI

2 个答案:

答案 0 :(得分:3)

您的编码看起来有点偏离 - 您希望编码单个值,而不是整个查询字符串。

更重要的是,谷歌在这里引用“google maps static gmail”一词,所以我也想提供这个建议:

  • 要包含静态地图并将其显示在GMail中,您必须使用API​​密钥

e.g。

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

我希望我有文档支持(如果它存在)或甚至是我第一次阅读它的主题的链接,以便我可以给出正确的归属 - 如果你知道,请编辑。在任何一种情况下,它都适合我!

答案 1 :(得分:1)

可能由于某种原因,URL编码无法正常工作..或者导致gmail对某些事情感到不安......

删除编码并手动更换&amp;与&amp; amp; amp;它应该没问题。

对不起,不是最优雅的解决方案......

编辑:

实际上我不知道它是否重要...但你编写的第一个=可能会在你构建它之后对整个URL进行编码......: - )