kansiho's memo

ruby, python, javascript. Rails, wordpress, OpenCV, heroku...

Rails5でメールを送る前にlocalhost:3000でプレビューする方法

f:id:serendipity4u:20170417172047p:plain

すっかり, txt形式ではなくhtml形式の綺麗なメールマガジンが主流になりましたね. html形式だと受け取り側の開封確認も受信側からできますから便利なんでしょう.

というわけで私もメールテンプレートを購入し, 作って見たのですが, あれ, どうやってこれ確認すればいいんだろうってなりました.

% rails g mailer register

      create  app/mailers/register_mailer.rb
      create  app/mailers/application_mailer.rb
      invoke  erb
      create    app/views/register_mailer
      create    app/views/layouts/mailer.text.erb
      create    app/views/layouts/mailer.html.erb
      invoke  rspec
      create    spec/mailers/register_spec.rb
      create    spec/mailers/previews/register_preview.rb  // これ

この spec/mailers/previews/register_preview.rbに注目です.

app/mailers/register_mailer.rb

class RegisterMailer < ApplicationMailer
  default from: "info@cantas.co.jp"
  def welcome(user)
    mail(from: 'noreply@cantas.co.jp', to: user.email)
  end
end

spec/mailers/previews/register_preview.rb

# Preview all emails at http://localhost:3000/rails/mailers/register
class RegisterPreview < ActionMailer::Preview
  def welcome
    RegisterMailer.welcome(User.last) # User.lastはプレビュー目的なので適当
  end
end

http://localhost:3000/rails/mailers/register/welcome でプレビューを見ることができます!

f:id:serendipity4u:20170828220527p:plain

こんな感じで見れます.