はじめに
Railsアプリでコンタクトフォームなどを自作している場合、開発段階でメールが送信されることを確認する必要があります。開発段階のテストのため、実際のメールサーバーを使うことや、実際のメールクライアントにテストメールが残ることを避けたいという場合があります。
本記事では、mailcatcher
というGemを使ってテストメールサーバーを構築し、テストメールを送信する方法について説明します。
mailcatcherを使ってテストメールを送信/受信
mailcatcherのインストール
Railsアプリにmailcatcher
をインストールするには、Gemfileに以下を追加し、bundle install
を行います。mailcatcher
は開発環境でのみ使用するので、development
グループの中に追加します。
group :development do
gem 'mailcatcher'
end
mailcatcherの設定
Railsアプリにmailcatcher
を設定するには、config/environments/development.rb
に以下を追記します。
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = { address: 'localhost', port: 1025 }
mailcatcherの実行
mailcather
を実行するには、コンソールで以下のコマンドを実行します。デフォルトではバックグラウンドで起動し、smtp://localhost:1025
が使用されます。
$ mailcatcher
コマンド実行時、以下のオプションが設定できます。
オプション | 説明 |
---|---|
--ip IP |
smtp/httpサーバーのIPアドレスを設定 |
--smtp-ip IP |
smtpサーバーのIPアドレスを設定 |
--smtp-port PORT |
smtpサーバーのポート番号を設定 |
--http-ip IP |
httpサーバーのIPアドレスを設定 |
--http-port PORT |
httpサーバーのポート番号を設定 |
--[no-]growl |
メッセージを受信したらローカルマシンに通知 |
-f , --foreground |
フォアグラウンドで実行 |
-b , --browse |
ウェブブラウザを開く |
-v , --verbose |
詳細を表示 |
-h , --help |
ヘルプ情報を表示 |
テストメールを受信
開発環境のRailsアプリからテストメールを送信すると、mailcatcher
でメールを受信します。メールボックスはhttp://localhost:1080
で確認できます。
まとめ
開発環境でテストメールの確認ができるGemは他にletter_opener
がありますが、mailcatcher
のほうが導入も簡単ですし使い方も非常にシンプルなのでおすすめです。
本記事を参考にして、テストメールを送信/受信していただければと思います。