Кто-нибудь получал электронные письма HTML, работающие с Twitter Bootstrap? - PullRequest
86 голосов
/ 16 марта 2012

Я использую гем premailer-rails3, который использует встроенные стили для HTML-писем, и пытаюсь заставить его работать с загрузчиком Twitter.

https://github.com/fphilipe/premailer-rails3

Похоже, что некоторые стили появляются правильно, но не все из них. Мне интересно, есть ли у кого-нибудь хороший рабочий пример получения их Twitter Bootstrap css (модифицированного или нет) в html письме.

Спасибо!

Ответы [ 9 ]

78 голосов
/ 24 мая 2012

Если вы имеете в виду «Могу ли я использовать стилистическую презентацию Bootstrap в электронном письме?» тогда вы можете, хотя я пока не знаю никого, кто бы это сделал. Вам все равно придется перекодировать все в таблицы.

Если вам не хватает функциональности, это зависит от того, где просматриваются ваши электронные письма. Если значительная часть ваших пользователей работает в Outlook, Gmail, Yahoo или Hotmail (а это обычно составляет около 75% почтовых клиентов), то большая часть Bootstrap невозможна. Mac Mail, iOS Mail и Gmail на Android намного лучше отображают CSS, поэтому, если вы ориентируетесь в основном на мобильные устройства, это не так уж и плохо.

  • JavaScript - полностью запрещено. Если вы попробуете, вы, вероятно, попадете прямо в ад электронной почты (a.k.a. spam folder). Это означает, что LESS также выходит за пределы, хотя вы можете использовать результирующие стили CSS, если хотите.
  • Встроенный CSS гораздо безопаснее использовать, чем любой другой тип CSS (встроенный возможен, связанный - определенно нет). Медиа-запросы возможны, так что вы можете иметь своего рода адаптивный дизайн. Тем не менее, существует длинный список атрибутов CSS, которые не работают - по существу, блочная модель в основном не поддерживается в почтовых клиентах. Вам нужно все структурировать с помощью таблиц.
  • font-face - вы можете использовать только внешние изображения. Все остальные внешние ресурсы (файлы CSS, шрифты) исключены.
  • глифы и спрайты - из-за странной реализации в Outlook 2007 фоновых изображений (VML) нельзя использовать background-repeat или position.
  • псевдоселекторы невозможны - например, :hover, :active состояния не могут быть стилизованы отдельно

Там есть загружает из ответов на SO, а также множество других ссылок в Интернете по адресу большой.

41 голосов
/ 04 мая 2014

Я прошу прощения за восстановление этого старого потока, но я просто хотел, чтобы все знали, что есть очень близкий Bootstrap, как CSS-фреймворк, специально созданный для стилевого оформления электронной почты, вот ссылка: http://zurb.com/ink/

Надеюсь, это кому-нибудь поможет.

Редактирование ниндзя: С тех пор оно было переименовано в Foundation for Emails, а новая ссылка: https://foundation.zurb.com/emails.html

16 голосов
/ 18 апреля 2012

Вот несколько вещей, которые вы не можете сделать с помощью электронной почты:

  • Включить раздел со стилями .Apple Mail.app поддерживает его, а Gmail и Hotmail - нет, так что нет-нет.Hotmail будет поддерживать раздел стиля в теле, но Gmail все еще не поддерживает.
  • Ссылка на внешнюю таблицу стилей. Не многие почтовые клиенты поддерживают это, лучше просто забыть об этом.
  • Background-image / Background-position. Gmail также является виновником этого.
  • Очистите ваши поплавки .Снова Gmail.
  • Маржа .Да, серьезно, Hotmail игнорирует поля.В принципе, любое позиционирование CSS вообще не работает.
  • Font-everything .Скорее всего, Eudora будет игнорировать все, что вы пытаетесь объявить со шрифтами.

Источник: http://css -tricks.com / using-css-in-html-emails-the-real-story /

Mailchimp имеет шаблоны электронной почты, которые вы можете использовать - здесь

Еще несколько ресурсов, которые должны вам помочь

10 голосов
/ 07 августа 2013

Вы можете использовать это https://github.com/advancedrei/BootstrapForEmail для привязки вашего письма.

1 голос
/ 16 января 2015

Привет, Брайан Армстронг , посещение эта ссылка .

В этом блоге рассказывается, как интегрировать Rails с Bootstrap less (с использованием premailer-rails).

Если вы используете bootstrap sass, вы можете сделать то же самое:

начать с импорта некоторых файлов sass Bootstrap в email.css.scss

@import "bootstrap-sprockets";
@import "bootstrap/variables";
@import "bootstrap/mixins";
@import "bootstrap/scaffolding";
@import "bootstrap/type";
@import "bootstrap/buttons";
@import "bootstrap/alerts";
@import 'bootstrap/normalize';
@import 'bootstrap/tables';
@import 'bootstrap/progress-bars';

, а затем, по вашему мнению, <head> добавьте раздел <%= stylesheet_link_tag "email" %>

1 голос
/ 18 апреля 2012

Недавно я потратил некоторое время на создание шаблонов html-писем, лучшее решение, которое я нашел, - это использовать http://htmlemailboilerplate.com/.. С тех пор я создал 3 довольно сложных шаблона, и они хорошо работали в различных почтовых клиентах.

0 голосов
/ 12 апреля 2019

А как насчет Bootstrap Email? Кажется, это действительно хорошо и совместимо с начальной загрузкой 4.

0 голосов
/ 18 ноября 2014

Хитрость в том, что вы не хотите включать весь начальный загрузчик. Проблема заключается в том, что почтовые клиенты игнорируют медиазапросы и обрабатывают все стили печати, которые содержат много важных инструкций

Вместо этого вам нужно включать только те части начальной загрузки, которые вам нужны. Мой файл email.css.scss выглядит так:

@import "bootstrap-sprockets";
@import "bootstrap/variables";
@import "bootstrap/mixins";
@import "bootstrap/scaffolding";
@import "bootstrap/type";
@import "bootstrap/buttons";
@import "bootstrap/alerts";

@import 'bootstrap/normalize';
@import 'bootstrap/tables';
0 голосов
/ 30 октября 2014

Лучший подход, который я придумала, - это использовать импорт Sass на выбранной основе для добавления ваших загрузочных (или любых других) стилей в электронные письма по мере необходимости.

Сначала создайте новый родительский файл scss, например, email.scss для вашего стиля электронной почты. Это может выглядеть так:

    // Core variables and mixins
    @import "css/main/ezdia-variables";

    @import "css/bootstrap/mixins";
    @import "css/main/ezdia-mixins";

    // Import base classes
    @import "css/bootstrap/scaffolding";
    @import "css/bootstrap/type";
    @import "css/bootstrap/buttons";
    @import "css/bootstrap/alerts";

    // nest conflicting bootstrap styles
    .bootstrap-style {
        //use single quotes for nested imports
        @import 'css/bootstrap/normalize';
        @import 'css/bootstrap/tables';
    }

    @import "css/main/main";

    // Main email classes
    @import "css/email/zurb";
    @import "css/email/main";

Тогда в ваших шаблонах электронной почты используйте только ваш скомпилированный файл email.css, который содержит только выбранные стили начальной загрузки, на которые есть ссылки и которые правильно вложены в ваш email.scss.

Например, некоторые стили начальной загрузки будут конфликтовать с отзывчивым стилем таблицы Zurb. Чтобы это исправить, вы можете вкладывать стили начальной загрузки в родительский класс или другой селектор, чтобы вызывать стили таблицы начальной загрузки только при необходимости.

Таким образом, у вас есть возможность посещать занятия только при необходимости. Вы увидите, что я использую <a href="http://zurb.com/" rel="nofollow">http://zurb.com/</a> - отличную адаптивную библиотеку электронной почты. Смотри также <a href="http://zurb.com/ink/" rel="nofollow">http://zurb.com/ink/</a>

Наконец, используйте премалер, такой как <a href="https://github.com/fphilipe/premailer-rails3" rel="nofollow">https://github.com/fphilipe/premailer-rails3</a>, упомянутый выше, чтобы обработать стиль во встроенный CSS, компилируя встроенные стили только с тем, что используется в этом конкретном шаблоне электронной почты. Например, для premailer ваш файл ruby ​​может выглядеть примерно так, чтобы скомпилировать письмо во встроенном стиле.

    require 'rubygems' # optional for Ruby 1.9 or above.
    require 'premailer'

    premailer = Premailer.new('http://www.yourdomain.com/TestSnap/view/emailTemplates/DeliveryReport.jsp', :warn_level => Premailer::Warnings::SAFE)

    # Write the HTML output
    File.open("delivery_report.html", "w") do |fout|
      fout.puts premailer.to_inline_css
    end

    # Write the plain-text output
    File.open("output.txt", "w") do |fout|
      fout.puts premailer.to_plain_text
    end

    # Output any CSS warnings
    premailer.warnings.each do |w|
      puts "#{w[:message]} (#{w[:level]}) may not render properly in #{w[:clients]}"
    end

Надеюсь, это поможет! Мы изо всех сил пытались найти гибкую структуру шаблонов электронной почты для Pardot, Salesforce, а также встроенного автоответчика и ежедневных электронных писем нашего продукта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...