Ruby on RailsからMailtrapでメール送信する方法

本記事では、現役Railsエンジニアの管理人が、RailsアプリからMailtrapのテスト用サンドボックスにメール送信する方法を解説します。

本記事の前提

  • Railsアプリを作成済み。
  • Mailtrapアカウントを作成済み。

Mailtrapアカウントを持っていない方は、Mailtrap公式サイトより作成ください。

本サイトの別記事でアカウント登録方法をスクショ付きで詳しく解説していますので、参考にしてください。

MailtrapのAPIトークン作成

Mailtrapにログインし、左サイドメニューのSettings -> API TokensからAPI Tokenを作成します。

本記事ではSandbox宛てにテストメールを送信するので、PermissionsでMy SandboxのAdminにチェックを入れ、トークン名を「Rails development」として「Save」ボタンをクリックします。

Mailtrap API Token作成画面

画面に表示されるAPIトークンをコピーします。この画面を閉じると、セキュリティ上の理由からトークンが表示されなくなるので気をつけてください。

コピーしたAPIトークンをRailsのMAILTRAP_API_KEY環境変数に設定します。本記事ではdotenv-rails gemを使って設定します。

# .env
MAILTRAP_API_KEY=your_api_token

mailtrap gemのインストールと設定

Mailtrapの公式Rubyクライアント(gem)をインストールします。

# Gemfile
gem 'mailtrap'
# Bash
bundle install

Mailtrapを利用する環境用の設定ファイルで、メール送信方法を:mailtrapに指定します(本記事では開発環境を例に設定します)。

#  config/environments/development.rb
config.action_mailer.delivery_method = :mailtrap

config.action_mailer.mailtrap_settings = {
  api_key: ENV['MAILTRAP_API_KEY'],
  sandbox: true,
  inbox_id: your_sandbox_id,
}

サンドボックスのID(inbox_id)の確認方法は以下の通りです。

  1. 左サイドメニューのSandboxes -> Projectsより、受信箱の歯車アイコンをクリック。
  2. Integrationタブ -> APIタブをクリックし、Code SamplesでRuby: Actionmailerを選択し、表示されたinbox_idをコピー。
Mailtrap Sandbox Settings

テストメール送信

RailsアプリからActionMailerでメールを送信し、Sandboxにメールが届いたら成功です。

ActionMailerコード例:

MyMailer.with(params).new_email.deliver_later
Mailtrap Sandbox email count

まとめ:Mailtrapを使ってRailsからメール送信しよう

Mailtrapを使うと、Railsから簡単にメールを送信できます。

  1. MailtrapでAPIトークンを作成
  2. mailtrap gemをRailsにインストールして設定

Mailtrapは無料で登録できるので、ぜひ試してみてください。