Какие инструменты для автоматического встраивания стиля CSS для создания HTML-кода электронной почты? [закрыто]

122

Заглянув на http://www.campaignmonitor.com/css/, вы узнаете, что вам нужно встраивать встроенные стили в свой HTML, чтобы вашу электронную почту можно было читать в любом почтовом клиенте.

Знаете ли вы какие-либо инструменты или скрипты для автоматического преобразования HTML-файла с объявлением в HTML-файл с только встроенными атрибутами стиля CCS?

Изменить : любое решение Javascript (например: http://www.robertnyman.com/2006/04/24/get-the-rendered-style-of-an-element/ )? С jQuery?

Пьер-Жан Кудер
источник
3
Я только что задал аналогичный вопрос о рекомендациях по программному обеспечению в продолжение этого: softwarerecs.stackexchange.com/questions/9983/…
Grzegorz Oledzki
Мне просто нужно было решить эту задачу для отдела на работе. Этот вопрос содержит необходимые шаги для решения проблемы.
Гоферхан

Ответы:

80

Проверьте онлайн-конвертер premailer.dialect.ca или этот скрипт Python, чтобы сделать это.

Салех Аль-Заид
источник
10
Похоже, Premailer переместился на новый URL: premailer.dialect.ca
Мэтт Хаггинс,
2
Mail chimp предлагает отличный стилевой лайнер здесь: beaker.mailchimp.com/inline-css
dhornbein
1
premailer.dialect.ca великолепен, но он подавляется множеством страниц. Больше половины в моем тестировании. Например, попробуйте эту страницу.
Ник Вудхэмс
Запустите свой собственный сервер premailer ... github.com/TrackIF/premailer-server Легко запустить на ec2: docs.aws.amazon.com/elasticbeanstalk/latest/dg/…
Адам Лейн,
Ни один из них на самом деле не удаляет тег STYLE, что является основной проблемой, с которой вы будете иметь дело
Coldstar
33

Вот список готовых к использованию веб-инструментов встраивания, пара уже упоминалась ранее. Если есть что-то, что я пропустил, не стесняйтесь редактировать и добавлять их. Я не могу обещать, что каждый из них работает так, как рекламируется, поэтому пишите комментарии, но не стреляйте в мессенджер ...

И вот тот, который работает в обратном порядке (отключение вашего css)

Джон
источник
3
MailerMailer был единственным, кто работал у меня, сохраняя при этом форматирование.
Jeshurun
20

Если вы хотите иметь решение PHP, вы можете попробовать CssToInlineStyles .

chiborg
источник
2
этот скрипт php хорошо написан. он не обрабатывает флаг! important, но тем не менее это хороший сценарий.
Перри Тью
8

Я написал библиотеку Node.js под названием Styliner, которая встраивает CSS в серверный Javascript.

Он также поддерживает МЕНЬШЕ таблиц стилей (и поддерживает плагины для других форматов)

SLaks
источник
7

Возможно, вы захотите взглянуть на PostageApp .

Одной из его действительно сильных особенностей является то, что он имеет очень надежную систему шаблонов, которая может автоматически встраивать HTML и CSS без каких-либо проблем.

( Полное раскрытие информации: я являюсь менеджером по продукту PostageApp.)

JonLim
источник
Итак, вы выполняете встраивание CSS в конце цепочки обработки (прямо перед отправкой кому-то электронного письма)?
zazi
6

Это может быть слишком поздно, но если вы хотите сделать свой HTML-код наиболее подходящим для маркетинга по электронной почте (путем встраивания CSS и множества других интересных инструментов), используйте Premailer . Это бесплатно и, конечно же, сделано в сотрудничестве с самой CampaignMonitor.

Надеюсь, поможет.

Андре Арменни
источник
+1 для Premailer. У него есть и веб-форма, и API, которые вы можете использовать для интеграции в любую платформу. Если вы используете Node.js, там обертка здесь .
Джед Ватсон
6

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

Я нашел этот красивый маленький метод jQuery / javascript, который можно встроить в страницу - http://devintorr.es/blog/2010/05/26/turn-css-rules-into-inline-style-attributes-using-jquery /

Я немного отредактировал его для поддержки IE, а также для поддержки страницы с несколькими прикрепленными файлами CSS, применяя стили в правильном порядке.

$(document).ready(function ($) {
            var rules;
            for(var i = document.styleSheets.length - 1; i >= 0; i--){
                if(document.styleSheets[i].cssRules)
                    rules = document.styleSheets[i].cssRules;
                else if(document.styleSheets[i].rules)
                    rules = document.styleSheets[i].rules;
                for (var idx = 0, len = rules.length; idx < len; idx++) {
                    if(rules[idx].selectorText.indexOf("hover") == -1) {
                        $(rules[idx].selectorText).each(function (i, elem) {
                            elem.style.cssText = rules[idx].style.cssText + elem.style.cssText;
                        });
                    }
                }
            }
            $('style').remove();
            $('script').remove();
            $('link').remove();
        });

Затем страницу можно скопировать / вставить в тело письма.

Джон К
источник
зачем убираешь скрипт? И те, которые удаляют выполнение, я думаю, должны выходить за рамки цикла.
jcubic
@jcubic Вы правы относительно размещения удаления выполнения, я отредактирую. Удаление скрипта было в моем исходном коде, я хотел более чистый HTML, содержащий только то, что действительно необходимо для отображения страницы.
John C
Большое спасибо за этот краткий сценарий, я искал часы, и это самое чистое решение, которое я нашел.
kerzek
1
Был в одной лодке с @kerzek. В какой-то степени это сработало, но некоторые стили запутались. Однако эта версия кода работала отлично (проверено и все): devintorr.es/blog/2010/05/26/…
radu.luchian
5

Недостаточно просто встроить свой CSS. Нет никаких стандартов относительно того, как электронное письмо в формате HTML будет отображаться в любом используемом почтовом клиенте. Все они делают это по-разному, и чем больше вы разрабатываете свое электронное письмо, тем больше вероятность того, что оно привлечет большее количество клиентов. Многие профессионалы в этой области просто используют изображения и таблицы и, возможно, некоторые цвета фона, но ничего больше. Всегда включайте ссылку на веб-сайт, на котором есть рабочая копия электронного письма, и всегда предоставляйте вариант в виде простого текста.

Bjorn
источник