Deviseの認証メールをカスタマイズする方法
移転しました。
Deviseの認証メールをカスタマイズする方法がググっても日本語ではあまり出てこないので書いた。
Deviseをconfirmableにした場合、デフォルトだととても簡素なメールでの認証になってしまう。
ユーザーにとってはただの1回だけの認証メールで「リンクを押せば本登録なんだろ?」ってだけだけど。そういうなんでもないメールだからといって手を抜くといかにもこだわってない感がありありと出て私としては非常に気になる。ここはしっかりとデザインされたメールを送りたい。
で、ちゃんとしたHTMLメールを送る場合の方法。
まずはDevise Mailerをカスタマイズ。
pngとか入れたい画像ファイルとかを入れる。よくあるのはFacebookとかTwitterアイコン。
app/mailers/devise_custom_mailer.rb
class DeviseCustomMailer < Devise::Mailer before_filter :add_inline_attachment! private def add_inline_attachment! pngs = ['img-blog.png', 'img-facebook.png', 'img-in.png', 'img-pri.png', 'img-twitter.png', 'img-vimeo.png', 'logo.png'] pngs.each do |png| attachments.inline[png] = File.read("#{Rails.root}/app/assets/images/mailer/" + png) end end end
config/initializers/devise.r に DeviseCustomMailer を登録する。
# Configure the class responsible to send e-mails. config.mailer = 'DeviseCustomMailer'
画像を使ったら /app/assets/images/mailer/ に入れておく。
後はメールをHTML形式で書く。
/app/views/devise/mailer/confirmation_instructions.html.erb
イメージタグはこのように
<%= image_tag attachments['img-facebook.png'].url, :alt => "Facebook" %>