📧
Railsで開発環境に gem letter_opener_web を導入しメール本文をコンソールで確認するのをやめよう
TL;DR
- ここのブログの記事とほぼ同じ話をしてます
- 【Rails】letter_opener_webを使用して送信メールを確認する | RemoNote
主に gem devise でメール送信するときにコンソールで確認するのはダルい
Rails でメール送信の仕組みを導入するといえば
gem devise でのメール有効性確認やロック解除の仕組みの部分かと思います。
devise をチュートリアルに則ってセットアップしていくと、
メール送信した内容の確認はコンソールに出るからそれ使ってね、となりますよね。
Devise::Mailer#confirmation_instructions: processed outbound mail in 74.0ms
Delivered mail 5fd6e5ce263a7_2a054f4c375aa@81c033451ad2.mail (516.5ms)
Date: Mon, 14 Dec 2020 04:10:54 +0000
From: please-change-me-at-config-initializers-devise@example.com
Reply-To: please-change-me-at-config-initializers-devise@example.com
To: hoge@hoge.jp
Message-ID: <5fd6e5ce263a7_2a054f4c375aa@81c033451ad2.mail>
Subject: Confirmation instructions
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
<p>Welcome hoge@hoge.jp!</p>
<p>You can confirm your account email through the link below:</p>
<p><a href="http://localhost:3000/registrations/confirmation?confirmation_token=BqjAMrfCb5nse9Loq7c9">Confirm my account</a></p>
Rendering user/registrations/create.html.erb within layouts/application
Rendered user/registrations/create.html.erb within layouts/application (Duration: 7.0ms | Allocations: 98)
Completed 200 OK in 1872ms (Views: 19.0ms | ActiveRecord: 196.9ms | Allocations: 34615)
こんな感じ。
しかしこれはクッソダルいしコンソールは流れる物なので掘り返すのが面倒だし
ちょっと目を離した隙に「アレッどこだっけ」となります。
そこで助けてくれるのが
gem letter_opener_web です。
使ってみる
導入は簡単で上記 GitHub リポジトリの README.md にあるように
Gemfile の group :development
に追記して bundle install
group :development do
gem 'letter_opener_web'
end
あとは config/routes.rb に以下を追記
Rails.application.routes.draw do
## 開発環境用letter_opener
mount LetterOpenerWeb::Engine, at: "/letter_opener" if Rails.env.development?
end
これで、例えば localhost:3000
でRailsへのリクエストを待ち受けているなら
localhost:3000/letter_opener
にアクセスすることでメーラーのように確認できます。
上記のコンソールで確認するのに比べれば100倍みやすいし使いやすくなりましたね。
参考
- 【Rails】letter_opener_webを使用して送信メールを確認する | RemoNote
Discussion