Лучший подход, который я придумал, - это использовать импорт Sass на выбранной основе, чтобы при необходимости добавлять ваши стили начальной загрузки (или любые другие) в электронные письма.
Сначала создайте новый родительский файл scss, похожий email.scss
на ваш стиль электронной почты. Это могло выглядеть так:
@import "css/main/ezdia-variables";
@import "css/bootstrap/mixins";
@import "css/main/ezdia-mixins";
@import "css/bootstrap/scaffolding";
@import "css/bootstrap/type";
@import "css/bootstrap/buttons";
@import "css/bootstrap/alerts";
.bootstrap-style {
@import 'css/bootstrap/normalize';
@import 'css/bootstrap/tables';
}
@import "css/main/main";
@import "css/email/zurb";
@import "css/email/main";
Затем в своих шаблонах электронной почты указывайте только свой скомпилированный файл email.css, который содержит только выбранные стили начальной загрузки, на которые ссылаются и правильно вложены в ваш email.scss.
Например, некоторые стили начальной загрузки будут конфликтовать со стилем адаптивной таблицы Zurb. Чтобы исправить это, вы можете вложить стили начальной загрузки в родительский класс или другой селектор, чтобы вызывать стили таблицы начальной загрузки только при необходимости.
Таким образом, у вас есть возможность использовать классы только при необходимости. Вы увидите, что я использую http://zurb.com/
отличную адаптивную библиотеку электронной почты. Смотрите такжеhttp://zurb.com/ink/
Наконец, используйте предварительную рассылку, подобную https://github.com/fphilipe/premailer-rails3
упомянутой выше, для преобразования стиля во встроенный CSS, компилируя встроенные стили только для того, что используется в этом конкретном шаблоне электронной почты. Например, для premailer ваш рубиновый файл может выглядеть примерно так, чтобы скомпилировать электронное письмо во встроенном стиле.
require 'rubygems'
require 'premailer'
premailer = Premailer.new('http://www.yourdomain.com/TestSnap/view/emailTemplates/DeliveryReport.jsp', :warn_level => Premailer::Warnings::SAFE)
File.open("delivery_report.html", "w") do |fout|
fout.puts premailer.to_inline_css
end
File.open("output.txt", "w") do |fout|
fout.puts premailer.to_plain_text
end
premailer.warnings.each do |w|
puts "#{w[:message]} (#{w[:level]}) may not render properly in #{w[:clients]}"
end
Надеюсь это поможет! Я изо всех сил пытался найти гибкую структуру шаблонов электронной почты для Pardot, Salesforce и встроенных в наш продукт автоответчиков и ежедневных электронных писем.