Der beste Ansatz, den ich mir ausgedacht habe, besteht darin, Sass-Importe auf einer ausgewählten Basis zu verwenden, um Ihre Bootstrap-Stile (oder andere) nach Bedarf in E-Mails zu integrieren.
Erstellen Sie zunächst eine neue übergeordnete scss-Datei, die email.scss
Ihrem E-Mail-Stil entspricht. Das könnte so aussehen:
// 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";
Verweisen Sie dann in Ihren E-Mail-Vorlagen nur auf Ihre kompilierte Datei email.css, die nur die ausgewählten Bootstrap-Stile enthält, auf die in Ihrer email.scss verwiesen und die ordnungsgemäß verschachtelt sind.
Beispielsweise stehen bestimmte Bootstrap-Stile in Konflikt mit dem reaktionsschnellen Tabellenstil von Zurb. Um dies zu beheben, können Sie die Bootstrap-Stile in einer übergeordneten Klasse oder einem anderen Selektor verschachteln, um die Tabellenstile von Bootstrap nur bei Bedarf aufzurufen.
Auf diese Weise haben Sie die Flexibilität, Klassen nur bei Bedarf einzuziehen. Sie werden sehen, dass ich http://zurb.com/
eine großartige reaktionsschnelle E-Mail-Bibliothek verwende. Siehe auchhttp://zurb.com/ink/
Verwenden Sie zum Schluss einen Premailer wie https://github.com/fphilipe/premailer-rails3
oben erwähnt, um den Stil in Inline- CSS zu verarbeiten, und kompilieren Sie Inline-Stile nur zu dem, was in dieser bestimmten E-Mail-Vorlage verwendet wird. Für Premailer könnte Ihre Ruby-Datei beispielsweise so aussehen, dass eine E-Mail im Inline-Stil kompiliert wird.
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
Hoffe das hilft! Wir hatten Probleme, ein flexibles Framework für E-Mail-Vorlagen in Pardot, Salesforce und den integrierten automatischen Antwort- und täglichen E-Mails unseres Produkts zu finden.