我正在使用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
答案 0 :(得分:3)
您的编码看起来有点偏离 - 您希望编码单个值,而不是整个查询字符串。
更重要的是,谷歌在这里引用“google maps static gmail”一词,所以我也想提供这个建议:
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进行编码......: - )