ActionMailerのプレビュー

[ActionMailerのプレビュー]について

[ActionMailer]のプレビュー機能が便利だった為、こちらにまとめます
[ActionMailer]のプレビュー機能を使えば、実際にメールが送信されることはないので、何度もメールのレイアウトを確認することができる

プレビュー機能の手順を以下に示します

下記コマンドで、[ActionMailer]を生成する

$ rails generate mailer (メーラー名)


上記で[ActionMailer]を生成した際に、[spec/mailers/previews/]のフォルダ以下にpreviewのファイルが生成されているので、こちらに記載する。
Railsガイドには、[test/mailers/previews/]フォルダ以下にpreviewファイルを配置するとなっており、文章のまま[test/mailers/previews/]を作ってしまったので注意が必要!!
以下に例を示します

[app/mailers/article_mailer.rb]

class ArticleMailer < ApplicationMailer
  def report_summary
    mail(to: 'admin@example.com', subject: '公開済記事の集計結果')
  end
end
[app/mailers/previews/article_mailer_preview.rb]

class ArticleMailerPreview < ActionMailer::Preview
  def report_summary                     # メーラーと同じメソッド名で定義する
    ArticleMailer.report_summary   #送信したいメーラーを呼び出す[(メーラー名).(メーラーのメソッド)]
  end
end


サーバーを起動して以下のURLにアクセスすると、メールのプレビューが確認できる

http://localhost:3000/rails/mailers/(メーラー名)/(メソッド名)
   ① 以下が例
http://localhost:3000/rails/mailers/user_mailer/welcome_email


http://localhost:3000/rails/mailersで、使用できるメーラーが以下のように表示される

Image from Gyazo


メソッド名をクリックすると以下のようにメールがプレビューで表示される(このURLが①になる)
このメソッド名のリンク(report_summary)は、previewクラスに作成したreport_summaryメソッドに対応して表示される

Image from Gyazo

※ポイント
[ActionMailer]のプレビュー機能では、メールが送信されているわけではないのでプレビューで表示されるからメールの送信機能も動いていると勘違いしないようにする

参考記事

【Rails入門】Action Mailerのメール送信を初心者向けに基礎から解説 | 侍エンジニアブログ