
ローカル開発環境でメール受信
ローカル開発環境でのメール受信はletter_openerを使います。プロジェクトの初期設定で必須になると思いますが、忘れがちなのでメモします。
gemの追加
letter_opener_webというgemがあるので追加します。Gemfileを編集します。
1 | group :development do |
bundle installします
1 | $ docker compose run --rm web ./bin/bundle install |
インストールができました。GemfileとGemfile.lockをcommitしておきます。
routesの設定
http://localhost:3000/letter_openerでアクセスできるようconfig/routes.rbに以下の行を追加します
1 | Rails.application.routes.draw do |
ActionMailerの設定
最後にActionMailerの設定をします。config/environments/development.rbに以下の2行を追加します。
1 | config.action_mailer.default_url_options = { host: "localhost:3000"} |
config.action_mailerが記載されている付近に追加します。
1行目の設定はこの設定がないと、メールにURLを記載する場合のドメインがわからずエラーになってしまいます。
2行目の設定は、letter_opener_webでメールを送るという設定で、この設定がないとhttp://localhost:3000/letter_openerにアクセスしてもメールが見れません(メール送信のログが表示されて送られているように見えるがどこにも届かない)
まとめ
Railsの開発環境構築はいろいろ設定することが多いですが、設定する機会が少なく忘れてしまいます。出だしで躓かないようメモしておきました。