私が思いついた最善のアプローチは、Sassインポートを選択ベースで使用して、必要に応じてブートストラップ(またはその他の)スタイルを電子メールに取り込むことです。
まず、email.scss
メールスタイルのような新しい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のレスポンシブテーブルスタイルと競合します。これを修正するには、ブートストラップのスタイルを親クラスまたはその他のセレクター内にネストして、必要な場合にのみブートストラップのテーブルスタイルを呼び出すことができます。
このようにして、必要なときにだけクラスを取得する柔軟性があります。私が使用http://zurb.com/
する優れたレスポンシブ電子メールライブラリであることがわかります。こちらもご覧くださいhttp://zurb.com/ink/
最後に、https://github.com/fphilipe/premailer-rails3
上記のようなプリメーラーを使用してスタイルをインラインCSSに処理し、インラインスタイルをその特定の電子メールテンプレートで使用されているものだけにコンパイルします。たとえば、プリメーラーの場合、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、および当社の製品に組み込まれている自動応答と毎日のメールにまたがる柔軟なメールテンプレートフレームワークを見つけるのに苦労しています。