デフォルトのRailsメールはスタイルが適用されておらず、HTML形式で送信しても見た目はほとんどテキスト形式と変わりません。しかし、メールにCSSを適用する場合、各タグの属性にすべてのCSSルールを記述する必要があり面倒です
ここで、premailer-railsを利用することで、HTMLとCSSを別々のファイルで管理することができます。
まず、Gemfile
にgemを追加します。
gem 'premailer-rails'
次に、app/views/layout/mailer.html.erb
にstylesheet_link_tagを追加します。
CSSファイルは/public/static/css
配下に設置します。
リセットCSSはこちらを参考にしました。
<html>
<head>
<%= stylesheet_link_tag '/static/css/normalize.css', media: 'all' %>
<%= stylesheet_link_tag '/static/css/extra.css', media: 'all' %>
<%= stylesheet_link_tag '/static/css/outlook.css', media: 'all' %>
<%= stylesheet_link_tag '/static/css/mailer.css', media: 'all' %>
</head>
<body>
</body>
</html>
これで、HTMLメールにCSSが適用された状態で配信されます。