Railsメール送信を安全に確認!メールプレビューと開発確認:letter_opener・MailHogの使い方
生徒
「Railsでメール送信を作ったけど、本当に届くのか怖くて実行できません…」
先生
「開発中は、実際にメールを送らずに中身を確認する方法があります。」
生徒
「え、送らないで確認できるんですか?」
先生
「letter_openerやMailHogを使うと、画面で安全にメールを確認できますよ。」
1. Railsとは?メール機能も最初から用意されている
Rails(Ruby on Rails)は、Webアプリを効率よく作るためのフレームワークです。フレームワークとは、あらかじめ便利な仕組みがセットになった道具箱のようなものです。Railsには、最初からメール送信機能(Action Mailer)が用意されています。自分で一から仕組みを作らなくても、設定するだけでメールを送れるのが大きな特徴です。開発中は、本当にメールを送るのではなく、内容を確認する仕組みがとても重要になります。
2. 開発環境でメールを送らない理由
開発環境とは、パソコンの中でテスト用にアプリを動かす場所のことです。ここで本物のメールを送ってしまうと、間違った内容が他人に届く危険があります。そこで使われるのがメールプレビューです。メールプレビューとは、送信予定のメールを画面上で確認する仕組みです。手紙を書いたあと、封筒に入れる前に中身を読むイメージをすると分かりやすいです。
3. letter_openerでメールをブラウザ表示する
letter_openerは、Railsで送信したメールをブラウザに表示するgemです。gemとは、Railsに追加できる便利な部品のことです。メールを送る処理を実行すると、自動的にブラウザが開き、メール内容が表示されます。
# Gemfile
group :development do
gem 'letter_opener'
end
設定後、開発環境の設定ファイルで、メールの送信方法を指定します。
# config/environments/development.rb
config.action_mailer.delivery_method = :letter_opener
これで、メールは実際には送られず、画面で確認できるようになります。
4. MailHogで仮想メールサーバを使う
MailHogは、パソコン内に偽物のメールサーバを立てて、そこにメールを集めるツールです。郵便局の練習用窓口を作るようなイメージです。Railsから送られたメールは、すべてMailHogに保存され、Web画面で一覧表示されます。
# development.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'localhost',
port: 1025
}
MailHogを起動すると、ブラウザでメール一覧を確認できます。
5. メイラーの動きをプレビューで確認する
Action Mailerでは、メイラーというクラスでメール内容を作ります。プレビューを使うと、実際に処理を動かさなくても内容を確認できます。これは、料理を出す前に味見をするようなものです。
# app/mailers/sample_mailer.rb
class SampleMailer < ApplicationMailer
def welcome
mail(to: 'test@example.com', subject: 'ようこそ')
end
end
このメールは、letter_openerやMailHogを使って安全に確認できます。
6. ビューとテンプレートの確認ポイント
メールにもHTMLテンプレートがあります。文字が崩れていないか、日本語が正しく表示されているかを確認することが大切です。特に初心者のうちは、送信前に必ずプレビューを見る習慣をつけましょう。
<h1>ご登録ありがとうございます</h1>
<p>このメールはテスト送信です。</p>
7. 開発確認をすることで防げるミス
メールプレビューを使うことで、宛先間違い、文字化け、内容不足といったミスを防げます。特にRails初心者やプログラミング未経験者にとって、失敗しても安全な環境があることは安心材料になります。letter_openerは手軽さ、MailHogは実運用に近い確認ができる点が強みです。用途に応じて使い分けることで、メール送信機能を安全に開発できます。