似乎图像的新gmail代理不能与SVG一起使用(如果在新选项卡中打开代理URL,则会出现404错误.)
我无法找到有关支持/阻止的文件类型的任何文档.在gmail中的SVG是否适用于其他任何人?
我能想到的唯一解决方法是使用PhantomJS在服务器上生成一个svg - 还有其他任何选项吗?
背景:
这适用于发送每日摘要电子邮件的webapp,显示过去24小时内的图表(因此svg每天都不同,在电子邮件中显示它会让用户省去点击应用程序的麻烦.)
我知道SVG图像在某些电子邮件客户端中不起作用,但它可以工作95%,其余的仍然可以点击进入webapp.
它在gmail中运行良好,直到本月早些时候代理更改(该月底刚刚推出到Google Apps帐户.)
我从谷歌的支持中听说过,他们已经确认目前没有计划在代理中支持SVG图像.他们表示,他们只占100,000个电子邮件图片中的1个.
除了PhantomJs之外,更简单的svg选项是php插件ImageMagick.
这里有一些示例代码可以帮助您入门:
header("Content-Type: image/png"); header("Content-Disposition: inline;"); if (empty($svg)) { readfile("invisibleImage.png", true); } else { //TODO: You'll probably want to set headers to cache the returned image $filepath = "/path/to/where/images/are/cached/"; if (!file_exists("$filepath$svgName.png")) { if (!is_dir($filepath)) { mkdir($filepath, 0700, 1); } file_put_contents("$filepath$svgName.svg", $svg); $cmd = "rsvg-convert $filepath$msk.svg > $filepath$svgName.png"; exec($cmd); unlink("$filepath$svgName.svg"); } readfile("$filepath$svgName.png"); }
您将要安装至少以下某些内容:
apt-get install librsvg2-bin libpng3 imagemagick libpng12-dev \