カテゴリ: Rails 更新日: 2026/02/26

Railsメール送信を安全に確認!メールプレビューと開発確認:letter_opener・MailHogの使い方

メールプレビューと開発確認:letter_opener/mailhogの使い方
メールプレビューと開発確認:letter_opener/mailhogの使い方

先生と生徒の会話形式で理解しよう

生徒

「Railsでメール送信を作ったけど、本当に届くのか怖くて実行できません…」

先生

「開発中は、実際にメールを送らずに中身を確認する方法があります。」

生徒

「え、送らないで確認できるんですか?」

先生

「letter_openerやMailHogを使うと、画面で安全にメールを確認できますよ。」

1. Railsとは?メール機能も最初から用意されている

1. Railsとは?メール機能も最初から用意されている
1. Railsとは?メール機能も最初から用意されている

Rails(Ruby on Rails)は、Webアプリを効率よく作るためのフレームワークです。フレームワークとは、あらかじめ便利な仕組みがセットになった道具箱のようなものです。Railsには、最初からメール送信機能(Action Mailer)が用意されています。自分で一から仕組みを作らなくても、設定するだけでメールを送れるのが大きな特徴です。開発中は、本当にメールを送るのではなく、内容を確認する仕組みがとても重要になります。

2. 開発環境でメールを送らない理由

2. 開発環境でメールを送らない理由
2. 開発環境でメールを送らない理由

開発環境とは、パソコンの中でテスト用にアプリを動かす場所のことです。ここで本物のメールを送ってしまうと、間違った内容が他人に届く危険があります。そこで使われるのがメールプレビューです。メールプレビューとは、送信予定のメールを画面上で確認する仕組みです。手紙を書いたあと、封筒に入れる前に中身を読むイメージをすると分かりやすいです。

3. letter_openerでメールをブラウザ表示する

3. letter_openerでメールをブラウザ表示する
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で仮想メールサーバを使う

4. MailHogで仮想メールサーバを使う
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. メイラーの動きをプレビューで確認する

5. メイラーの動きをプレビューで確認する
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. ビューとテンプレートの確認ポイント

6. ビューとテンプレートの確認ポイント
6. ビューとテンプレートの確認ポイント

メールにもHTMLテンプレートがあります。文字が崩れていないか、日本語が正しく表示されているかを確認することが大切です。特に初心者のうちは、送信前に必ずプレビューを見る習慣をつけましょう。


<h1>ご登録ありがとうございます</h1>
<p>このメールはテスト送信です。</p>

7. 開発確認をすることで防げるミス

7. 開発確認をすることで防げるミス
7. 開発確認をすることで防げるミス

メールプレビューを使うことで、宛先間違い、文字化け、内容不足といったミスを防げます。特にRails初心者やプログラミング未経験者にとって、失敗しても安全な環境があることは安心材料になります。letter_openerは手軽さ、MailHogは実運用に近い確認ができる点が強みです。用途に応じて使い分けることで、メール送信機能を安全に開発できます。

カテゴリの一覧へ
新着記事
New1
Ruby
Rubyプログラムの実行方法まとめ:スクリプト・REPL・Shebang・実行権限の基本
New2
Rails
アセットの全体像をやさしく解説!importmap・jsbundling・cssbundlingの選び方
New3
Rails
Rails Action Cable入門|チャネル・接続・サブスクライブの基本を図解でやさしく解説
New4
Rails
RailsのScaffoldは使うべき?初心者向けにメリット・デメリット・安全な使い方と代替案を解説!
人気記事
No.1
Java&Spring記事人気No1
Ruby
Rubyのreduceとinject入門!合計計算や集計を初心者向けに分かりやすく解説
No.2
Java&Spring記事人気No2
Ruby
Rubyの文字列エンコーディング完全ガイド!Encoding・force_encoding・encodeを初心者向け解説
No.3
Java&Spring記事人気No3
データベース
PostgreSQLのWHERE句を徹底解説!初心者でもわかるSQLデータ抽出の基本
No.4
Java&Spring記事人気No4
Rails
Rails認可をやさしく理解!CanCanCan入門:ability.rbの定義とload_and_authorize_resource実例
No.5
Java&Spring記事人気No5
Ruby
Rubyで比較演算子を完全解説!==・===・<=>・eql? の使い分け
No.6
Java&Spring記事人気No6
Ruby
OpenSSL関連エラーの直し方を完全解説!証明書・ビルドオプション・brew対策まとめ
No.7
Java&Spring記事人気No7
データベース
MySQLとは?初心者向けにデータベースの特徴とできることをやさしく解説
No.8
Java&Spring記事人気No8
データベース
PostgreSQLのCTE(WITH句)完全解説!複雑なSQLを整理して読みやすくする書き方