Динамически генерировать встроенные стили css для шаблонов электронной почты в Symfony2

Есть ли инструмент или пакет в Symfony2, который позволяет мне создавать обычные шаблоны с файлами css, а затем на лету преобразовывать их во встроенные правила css, чтобы их можно было использовать в качестве тела электронного письма?


person David Barreto    schedule 05.09.2012    source источник


Ответы (3)


Я знаю три инструмента, которые могут это сделать и которые вы можете использовать в Symfony:

  • Premailer — это онлайн-инструмент, предоставляющий эту услугу. У него есть API и php-оболочка для этого API.
  • CssToInlineClass — это класс php, который предлагает эту функциональность.
  • Mailchimp предлагает функцию в своем API, которая предлагает эту функциональность.

Первые два не имеют прямой реализации в Symfony, хотя их будет легко использовать. Для mailchimp существует комплект mailchimp, который предлагает эту функциональность, хотя пакет не очень хорошо документирован.

person Carlos Granados    schedule 06.09.2012
comment
Спасибо, CssToInlineClass выглядит как путь для меня. - person David Barreto; 06.09.2012
comment
Может быть, вы можете создать публичный пакет для этого класса и поделиться им со всеми :-) - person Carlos Granados; 06.09.2012
comment
ха-ха, это будет очень мило, но сначала мне нужно научиться создавать бандлы для публикации на github. Но я буду иметь это в виду. - person David Barreto; 06.09.2012
comment
Это пакет Symfony 2, который можно найти здесь: packagist.org/packages /robertotru/to-inline-style-email-bundle как указано в одном из ответов @JeanValjean - person Bas Matthee; 10.07.2019

Сегодня я обнаружил через другой вопрос, что существует такой пакет Symfony2, который соответствует вашим потребностям (я его не проверял).

Вы можете использовать ToInlineStyleEmailBundle, он включает в себя CSSToInline, которую Карлос Гранадос предложил в своем ответе.

С этим пакетом Symfony2 вы можете получить конвертер как услугу ($this->get('css_to_inline_email_converter')), а затем использовать его для своих нужд. Он также поддерживает поколения шаблонов.

person JeanValjean    schedule 16.01.2013

Я добился отличных результатов, интегрировав PHP-класс Emogrifier в CakePHP. Очень красиво встраивает все стили. Не уверен, что у него есть пакет Symfony, но интегрировать несложно.

https://github.com/jjriv/emogrifier

person Simon East    schedule 06.06.2015