ページ内ナビ
概要
アプリケーションが送ろうとしたメールを外部へ配信せず、ローカルファイルとして保存してブラウザで開く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]Letter Opener v1.10.0 README(2026-10-04)
- [2]Letter Opener v1.10.0 changelog(2026-10-04)
- [3]Letter Opener v1.10.0 gem specification(2026-10-04)
- [4]Letter Opener v1.10.0 MIT license(2026-10-04)
- [5]Letter Opener GitHub repository metadata(2026-10-04)
編集部からの補足
SMTPなしでテンプレートを確認できる手軽さが魅力です。一方、ブラウザを直接開く仕組みなので、Dockerや遠隔環境では保存先の確認方法まで決めてから採用すると迷いません。
3ステップで試す
- 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
送信せずに保存する最小スクリプトを作る
同じディレクトリに、公式の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
ブラウザを開かず保存結果を確認する
ブラウザ起動を抑止して実行し、
tmp/letter_openerに生成されたプレビュー用ファイルを一覧します。LAUNCHY_DRY_RUN=true BROWSER=/dev/null bundle exec ruby preview.rb && find tmp/letter_opener -type f -print
成長
成長の推移 · 直近30日
3,838 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 0
- Open PR
- 1
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- graphql-ruby5,444 Stars
共通タグ 2件 · 同じ言語
RubyやRailsで型付きGraphQL APIを定義し、問い合わせを実行する
Ruby - Jekyll51,707 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
MarkdownとLiquidからブログ対応の静的サイトを生成
Ruby - Homebrew49,884 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
macOS/Linuxのソフトウェア導入を
Rubybrewコマンドへまとめるパッケージ管理ツール - fastlane42,201 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
iOS・Androidのビルド、署名、スクリーンショット、ストア配信を繰り返せるlaneとして自動化する
Ruby - Vagrant27,211 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
Vagrantfileでprovider差を隠し、portableな開発環境を配布するsource-available tool
Ruby - Kamal14,628 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
Docker化したWeb appをSSHでbare metalやcloud VMへ配備し、kamal-proxyでzero-downtime切替を行う
Ruby
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。