是否无法将Google地图嵌入HTML电子邮件中?

Ben*_*cot 36 html iframe google-maps html-email

我做了大量的研究,并找到了几个"解决方案",例如静态地图API,只是发送一个链接到Gmap.但是真的没有办法真正向某人发送谷歌地图吗?

Nei*_*gan 32

那么你自己的研究表明,大多数邮件客户端都没有iFrame,所以您认为可以做些什么?

这是故意的.iFrame和JavaScript是邮件服务不想处理的安全风险.

最好的办法是获取地图的静态图像,并将其作为图像嵌入 HTML电子邮件中.将超链接放在Google地图上的"完整"地图上.

要在Gmail中手动执行此操作:

  1. 转到http://staticmapmaker.com/google/或类似地方
  2. 输入位置
  3. 将地图图像复制到剪贴板并将其粘贴到电子邮件中
  4. 复制href"使用Google地图链接映射"部分中的锚点
  5. 选择整个图像(将光标放在图像的右侧,然后按shift+left arrow
  6. ctrl+ k可以超链接图像
  7. 将步骤4中的URL粘贴到Web地址字段中

  • 谢谢你的回答。绝对是将这个问题带到社区的反对票……说真的。 (2认同)

Mr.*_*dox 12

您可以创建一个静态图像映射并通过电子邮件发送,在Perl中执行:https://metacpan.org/pod/Geo:: Google :::StaticMaps :: V2

或直接由Google直接推荐:https: //developers.google.com/maps/documentation/static-maps/

在电子邮件的HTML部分应该是这样的:

<img src="http://maps.googleapis.com/maps/api/staticmap?size=800x600&maptype=hybrid&scale=2&format=png8&sensor=false&path=geodesic%3Atrue%7C-6.9325%2C+37.3916666666667%7C-6.9325%2C+37.3933333333333%7C-6.93388888888889%2C+37.3933333333333%7C-6.93388888888889%2C+37.3916666666667%7C-6.9325%2C+37.3916666666667&zoom=10" width="800" height="600"/>
Run Code Online (Sandbox Code Playgroud)

我刚试了一下它就像一个魅力.

示例代码:

#!/usr/bin/perl 
use strict;
use warnings;
use feature ':5.10';
use utf8;
use Geo::Converter::dms2dd qw { dms2dd };
use Geo::Google::StaticMaps::V2;
my $map = Geo::Google::StaticMaps::V2->new(
width    => 800,
height   => 600,
sensor   => 0,
scale    => 2,
zoom     => 16,
format   => "png8",
type     => "hybrid"
);

binmode(STDOUT, ":encoding(UTF-8)");
binmode(STDIN, ":encoding(UTF-8)");
$| = 1;

my %c;

$c{1} = [ '-6 55 57.00', '37 23 30.00' ];
$c{2} = [ '-6 55 57.00', '37 23 36.00' ];
$c{3} = [ '-6 56 02.00', '37 23 36.00' ];
$c{4} = [ '-6 56 02.00', '37 23 30.00' ];
$c{5} = [ '-6 55 57.00', '37 23 30.00' ];

my @location;

foreach my $key (sort keys %c) {
$c{$key}[0]  = dms2dd ({value => $c{$key}[0], is_lat => 1});
$c{$key}[1]  = dms2dd ({value => $c{$key}[1], is_lon => 1});
push(@location, "$c{$key}[0], $c{$key}[1]");
}


my $path = $map->path(locations=>[ @location ], geodesic=>1);
print $map->url;
$map->image;
$map->save("/home/data1/protected/map.png");
Run Code Online (Sandbox Code Playgroud)