gemを追加
group :development do # 略 gem 'letter_opener' gem 'letter_opener_web' # 略 end
インストール
$ bundle install
ルーティングを設定
# config/routes.rb mount LetterOpenerWeb::Engine, at: '/letter_opener' if Rails.env.development?
Letter Opener Webのエンジン(エンジンとは、Railsアプリケーションと同様に動作するRailsコンポーネントで、その中に自身のMVCコンポーネントやルーティングを持つことができます)を、/letter_opener
というパスでマウント(接続)しています。
環境設定
# config/environments/development.rb config.action_mailer.delivery_method = :letter_opener_web
この設定はRailsのActionMailerでメールを送信する方法をletter_opener_web
に設定しています。
letter_opener_web
はRuby on Railsの開発環境で使用するためのgemです。このgemを使うと、開発中に生成されたメールをブラウザで確認することができます。これは、実際にメールを送信せずにメールの内容やレイアウトを確認するためのツールとなります。
通常、実際のメールを送信する場合は、SMTPサーバーなどを設定します。しかし、開発環境ではメールを実際に送信するのではなく、生成されたメールの内容を確認したいことが多いです。そのような場合に、letter_opener_web
を使うと便利です。
この設定は通常、config/environments/development.rb
のような環境設定ファイルに書かれます。こうすることで、開発環境でのみletter_opener_web
が使われ、本番環境では実際のメール送信方法(SMTPなど)が使われるように設定することができます。
任意の場所にデバッグ用リンクを追加
- if Rails.env.development? # = link_to "メール", '/letter_opener', target: '_blank' # 2023/07/06更新 # 新しいタブまたはウィンドウでリンクを開くときに rel='noopener' を指定することを推奨しています。rel='noopener' を指定すると、新しいタブやウィンドウが元のページにアクセスするのを防ぐことができ、セキュリティ上の問題を防ぐことができるようです。 = link_to "メール", '/letter_opener', target: '_blank', rel: 'noopener'
サーバーを再起動して/letter_opener
にアクセスする。