Подтвердить что ты не робот

Изображения SVG, заблокированные прокси-сервером gmail

Похоже, что новый прокси-сервер gmail для изображений не работает с SVG (дает ошибку 404, если вы открываете URL-адрес прокси на новой вкладке.)

Мне не удалось найти документацию о поддерживаемых/заблокированных типах файлов. Работает ли SVG в gmail для кого-то еще?

Единственным обходным решением, которое я могу придумать, является создание png svg на сервере с помощью PhantomJS - любых других параметров?

Фон:

Это для webapp, который отправляет ежедневные сводные сообщения электронной почты, показывая график, охватывающий последние 24 часа (так что svg отличается каждый день, поскольку он в электронном письме сохраняет пользователя в результате нажатия на приложение).

Я знаю, что SVG-изображения не будут работать в некоторых почтовых клиентах, но он будет работать на 95%, остальные могут все же щелкнуть по веб-папке.

Он отлично работал в gmail до тех пор, пока прокси-сервер не изменится ранее в этом месяце (который только что выгрузился в аккаунты Google Apps в конце месяца.)

4b9b3361

Ответ 1

Я слышал из поддержки Google, и они подтвердили, что в настоящее время нет планов по поддержке SVG-изображений в прокси-сервере. Они сказали, что они составляют только 1 из 100 000 изображений электронной почты.

Помимо 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 \