OSS探訪GitHubでログイン

開発中のメールを送信せず、ブラウザで内容を確認する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
3,838
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/04/25
ページ内ナビ

概要

アプリケーションが送ろうとしたメールを外部へ配信せず、ローカルファイルとして保存してブラウザで開くRubyライブラリです。RailsのAction Mailerでは配信方法を切り替えるだけで使え、MailやPonyにも組み込めます。宛先へ誤送信する心配を減らしながら、本文、件名、添付ファイルを開発環境で確認できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

Railsの配信方法をブラウザプレビューへ切り替える

開発用Gemfileへ追加し、config/environments/development.rb で delivery_method を :letter_opener に設定すると、メールは送信されず既定で tmp/letter_opener に保存されます。保存した内容はLaunchyを介して既定のブラウザで開きます。

出典:[1]

Rails以外のメール送信処理にも組み込める

Mail、Pony、ActionMailer単体では、配信方法と保存先を明示して利用できます。保存先、表示用テンプレート、WSL向けのファイルURI方式も設定できます。

出典:[1]

向いている用途

メール文面と添付ファイルをローカル開発で確認する

SMTPや外部メールサービスを用意せず、通知メールや認証メールの見た目を手早く確認したいRails開発に向きます。実在する宛先へ送らないため、テストデータを使った開発時の誤送信防止にも役立ちます。

出典:[1]

導入前の確認

ブラウザを開けるローカル実行環境を前提にする

Launchyがアプリケーションと同じローカルマシンでブラウザを開く設計です。Docker、仮想マシン、遠隔サーバーなどブラウザを直接開けない環境では、LAUNCHY_DRY_RUN=true と BROWSER=/dev/null を使って保存だけを確認するか、用途に合う別の受信ツールを検討します。

v1.10.0はRuby 2系を対象外とし、Ruby 3.0以降をサポートすると変更履歴に記載されています。保存済みメールを一覧するRails画面は提供しません。開発環境専用として設定し、本番の配信方法へ混入しないことを確認してください。

出典:[1][2][3][4]

参考にした公式資料

  1. [1]Letter Opener v1.10.0 README(2026-10-04)
  2. [2]Letter Opener v1.10.0 changelog(2026-10-04)
  3. [3]Letter Opener v1.10.0 gem specification(2026-10-04)
  4. [4]Letter Opener v1.10.0 MIT license(2026-10-04)
  5. [5]Letter Opener GitHub repository metadata(2026-10-04)
編集部からの補足

SMTPなしでテンプレートを確認できる手軽さが魅力です。一方、ブラウザを直接開く仕組みなので、Dockerや遠隔環境では保存先の確認方法まで決めてから採用すると迷いません。

3ステップで試す

  1. 1

    検証用Bundleへ固定版を追加する

    Ruby 3.0以降とBundlerが必要です。Railsを使わない公式例に必要なMailもローカルのGemfileへ追加します。

    mkdir letter-opener-demo && cd letter-opener-demo && bundle init && bundle add letter_opener --version 1.10.0 && bundle add mail
  2. 2

    送信せずに保存する最小スクリプトを作る

    同じディレクトリに、公式のMail連携を使う最小スクリプトを作ります。予約済みの .test ドメインを使い、外部へは送信しません。

    printf '%s\n' 'require "mail"' 'require "letter_opener"' 'Mail.defaults { delivery_method LetterOpener::DeliveryMethod, location: File.expand_path("tmp/letter_opener", __dir__) }' 'Mail.deliver { from "sender@example.test"; to "recipient@example.test"; subject "Preview"; body "Hello" }' > preview.rb
  3. 3

    ブラウザを開かず保存結果を確認する

    ブラウザ起動を抑止して実行し、tmp/letter_opener に生成されたプレビュー用ファイルを一覧します。

    LAUNCHY_DRY_RUN=true BROWSER=/dev/null bundle exec ruby preview.rb && find tmp/letter_opener -type f -print
公式READMEで確認

成長

成長の推移 · 直近30日

3,838 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
1

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

カテゴリ

GitHubデータ

GitHubのデータGitHubの詳細データを見る
Stars
3,838
Forks
246
Watchers
32
Open Issues
1
Contributors
59
所有者種別
User
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/04/25

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?