【问题标题】:Email message with static Google map not displaying correctly in Gmail带有静态 Google 地图的电子邮件无法在 Gmail 中正确显示
【发布时间】:2011-07-24 02:46:45
【问题描述】:

我正在使用 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 - 你解决了吗?

标签: c# gmail html-email


【解决方案1】:

看起来你的编码有点不对劲 - 你想编码 individual 值,而不是 整个 查询字符串。

更重要的是,谷歌在“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" />

我希望我有文档来支持它(如果它存在的话),甚至是我第一次阅读它的线程的链接,这样我就可以给出正确的归属 - 如果你知道,请编辑。无论哪种情况,它都对我有用!

【讨论】:

  • 我搜索了很长一段时间,关于为什么静态地图没有在 Gmail 中显示,这个答案是我在互联网上唯一能找到原因的地方,正如建议的那样 地图没有 API 密钥。
【解决方案2】:

也许由于某种原因,URL 编码无法正常工作......或者导致 gmail 对某些事情感到害怕......

删除编码并手动将 & 替换为 &应该没问题..

抱歉,不是最优雅的解决方案...

编辑:

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

【讨论】:

    猜你喜欢
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 2017-03-31
    • 2020-04-27
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    相关资源
    最近更新 更多