L'approccio migliore che ho trovato è utilizzare le importazioni Sass su una base selezionata per inserire i tuoi stili di bootstrap (o qualsiasi altro) nelle e-mail come potrebbe essere necessario.
Innanzitutto, crea un nuovo file principale scss simile email.scss
al tuo stile di posta elettronica. Questo potrebbe assomigliare a questo:
// 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";
Quindi, nei tuoi modelli di email, fai riferimento solo al tuo file email.css compilato, che contiene solo gli stili di bootstrap selezionati referenziati e nidificati correttamente nel tuo email.scss.
Ad esempio, alcuni stili di bootstrap entreranno in conflitto con lo stile di tabella reattivo di Zurb. Per risolvere questo problema, puoi annidare gli stili di bootstrap all'interno di una classe genitore o di un altro selettore per chiamare gli stili di tabella di bootstrap solo quando necessario.
In questo modo, hai la flessibilità di inserire le lezioni solo quando necessario. Vedrai che uso http://zurb.com/
che è un'ottima libreria di posta elettronica reattiva da utilizzare. Guarda anchehttp://zurb.com/ink/
Infine, usa un premailer come https://github.com/fphilipe/premailer-rails3
menzionato sopra per elaborare lo stile in CSS inline, compilando gli stili inline solo per ciò che viene utilizzato in quel particolare modello di email. Ad esempio, per il premailer, il tuo file ruby potrebbe assomigliare a questo per compilare un'e-mail in stile inline.
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
Spero che questo ti aiuti! Ho faticato a trovare un framework flessibile per la creazione di modelli di posta elettronica in Pardot, Salesforce e nella risposta automatica e nelle e-mail giornaliere integrate del nostro prodotto.