Які інструменти для автоматичного вбудовування стилю CSS для створення HTML-коду електронної пошти? [зачинено]


122

Якщо ви подивитесь на http://www.campaignmonitor.com/css/, ви дізнаєтесь, що вам потрібно вбудувати стилі вбудованого тексту у свій HTML, щоб ваш електронний лист був прочитаний у будь-якому поштовому клієнті.

Чи знаєте ви будь-які інструменти чи сценарій для автоматичного перетворення HTML-файлу із заявленим в HTML-файл із лише вбудованими атрибутами стилю CCS?

Редагувати : Будь-яке рішення Javascript (тобто: http://www.robertnyman.com/2006/04/24/get-the-render-style-of-an-element/ )? З jQuery?


3
Я щойно задав подібне запитання щодо Рекомендацій щодо програмного забезпечення, як подальше до цього: softwarerecs.stackexchange.com/questions/9983/…
Grzegorz Oledzki

Мені просто довелося вирішити цю точну річ для відділу на роботі. Це питання забезпечило необхідні кроки для вирішення питання.
Gopherkhan

Відповіді:


80

Перевірте онлайн-конвертер premailer.dialect.ca або цей сценарій Python, щоб зробити це.


10
Схоже, Прейлер перейшов на нову URL-адресу: premailer.dialect.ca
Мет Хаггінс

2
Шимпанзе по пошті пропонує чудовий стильний інлайнер тут: 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 був єдиним, хто працював на мене, зберігаючи форматування неушкодженим.
Єшурун

20

Якщо ви хочете мати рішення PHP, ви можете спробувати CssToInlineStyles .


2
що сценарій php добре написаний. він не обробляє важливий прапор, але все-таки приємний сценарій.
Perry Tew


8

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

Він також підтримує менші таблиці стилів (та підтримує плагіни для інших форматів)


7

Ви можете поглянути на PostageApp .

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

( Повне розкриття інформації: я менеджер продуктів для PostageApp.)


значить, ви робите вкладені CSS в кінці ланцюжка обробки (безпосередньо перед тим, як надіслати електронний лист комусь)?
зазі

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 з лише тим, що було дійсно необхідно для відображення сторінки.
Джон C

Велике спасибі за цей стислий сценарій, я шукав цілі години, і це найчистіше рішення, яке я знайшов.
kerzek

1
Був у тому ж човні, що і @kerzek. Це працювало певною мірою, але деякі стилі заплуталися. Ця версія коду, однак, спрацювала чудово (перевірена та вічна): devintorr.es/blog/2010/05/26/…
radu.luchian

5

Не достатньо просто вбудувати CSS. Немає дотриманих стандартів щодо того, як відображатиметься HTML-адреса електронної пошти у будь-якому клієнті електронної пошти. Всі вони роблять це по-різному, і чим більше ви розробляєте свою електронну пошту, тим більше шансів на те, що вона порушить більшу кількість клієнтів. Багато професіоналів у цьому просторі просто використовують зображення та таблиці та, можливо, деякі кольори фону, але нічого іншого. Завжди включайте посилання на веб-сайт, який має робочу копію електронного листа та завжди надайте звичайний варіант тексту.




Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.