Ben*_*cot 36 html iframe google-maps html-email
我做了大量的研究,并找到了几个"解决方案",例如静态地图API,只是发送一个链接到Gmap.但是真的没有办法真正向某人发送谷歌地图吗?
Nei*_*gan 32
那么你自己的研究表明,大多数邮件客户端都没有iFrame,所以您认为可以做些什么?
这是故意的.iFrame和JavaScript是邮件服务不想处理的安全风险.
最好的办法是获取地图的静态图像,并将其作为图像嵌入 HTML电子邮件中.将超链接放在Google地图上的"完整"地图上.
要在Gmail中手动执行此操作:
href"使用Google地图链接映射"部分中的锚点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)