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で、使用できるメーラーが以下のように表示される
↓
メソッド名をクリックすると以下のようにメールがプレビューで表示される(このURLが①になる)
このメソッド名のリンク(report_summary)は、previewクラスに作成したreport_summaryメソッドに対応して表示される
※ポイント
[ActionMailer]のプレビュー機能では、メールが送信されているわけではないのでプレビューで表示されるからメールの送信機能も動いていると勘違いしないようにする