La meilleure approche que j'ai proposée est d'utiliser les importations Sass sur une base sélectionnée pour extraire vos styles de bootstrap (ou tout autre) dans les e-mails si nécessaire.
Tout d'abord, créez un nouveau fichier parent scss, quelque chose comme email.scss
pour votre style d'e-mail. Cela pourrait ressembler à ceci:
// 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";
Ensuite, dans vos modèles de courrier électronique, ne faites référence qu'à votre fichier email.css compilé, qui ne contient que les styles d'amorçage sélectionnés référencés et correctement imbriqués dans votre email.scss.
Par exemple, certains styles de bootstrap entreront en conflit avec le style de table responsive de Zurb. Pour résoudre ce problème, vous pouvez imbriquer les styles de bootstrap dans une classe parente ou un autre sélecteur afin d'appeler les styles de table de bootstrap uniquement lorsque cela est nécessaire.
De cette façon, vous avez la possibilité de tirer des classes uniquement lorsque cela est nécessaire. Vous verrez que j'utilise http://zurb.com/
ce qui est une excellente bibliothèque de messagerie réactive à utiliser. Voir égalementhttp://zurb.com/ink/
Enfin, utilisez un pré-envoi comme https://github.com/fphilipe/premailer-rails3
mentionné ci-dessus pour traiter le style en css en ligne, en compilant les styles en ligne uniquement avec ce qui est utilisé dans ce modèle de courrier électronique particulier. Par exemple, pour le pré-envoi, votre fichier ruby pourrait ressembler à ceci pour compiler un e-mail dans un style en ligne.
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
J'espère que cela t'aides! J'ai eu du mal à trouver un cadre de création de modèles d'e-mails flexible dans Pardot, Salesforce et la réponse automatique intégrée et les e-mails quotidiens de notre produit.