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

Rails本番SMTP設定ガイド完全版|Action MailerでGmail・SendGrid・Amazon SESを安全に使う方法

本番SMTP設定ガイド:Gmail/SendGrid/SESの設定とTLS確認手順
本番SMTP設定ガイド:Gmail/SendGrid/SESの設定とTLS確認手順

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

生徒

「Railsでメール送信ができるようになったんですが、本番環境ではどう設定すればいいんですか?」

先生

「本番ではSMTPという仕組みを使って、安全にメールを送る設定が必要だよ」

生徒

「SMTPって何ですか?GmailとかSendGridってよく聞きます」

先生

「じゃあ、Rails初心者でもわかるように、SMTPの基本から実際の設定まで順番に見ていこう」

1. SMTPとは?Rails本番環境で必要な理由

1. SMTPとは?Rails本番環境で必要な理由
1. SMTPとは?Rails本番環境で必要な理由

SMTP(エスエムティーピー)とは、メールを送信するための通信ルールのことです。 RailsのAction Mailerは、SMTPを使って外部のメールサーバーと連携し、メールを送信します。

開発環境ではメールを画面に表示するだけでも動作確認できますが、 本番環境では実際のメールアドレスに届く必要があるため、 GmailやSendGrid、Amazon SESなどのSMTPサービスを使います。

例えるなら、Action Mailerが「手紙を書いた人」、SMTPサーバーが「郵便局」です。 郵便局がないと、手紙は相手に届きません。

2. Action Mailerの本番SMTP基本設定

2. Action Mailerの本番SMTP基本設定
2. Action Mailerの本番SMTP基本設定

Railsでは、config/environments/production.rbにSMTP設定を書きます。 ここで「どのメールサービスを使うか」「どうやって安全に送るか」を決めます。


config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true

delivery_methodは「配送方法」という意味で、SMTPを使う指定です。 perform_deliveriesをtrueにしないと、本番でメールは送られません。

3. GmailのSMTP設定方法(初心者向け)

3. GmailのSMTP設定方法(初心者向け)
3. GmailのSMTP設定方法(初心者向け)

Gmailは個人開発や小規模サービスでよく使われます。 Googleアカウントを使ってメールを送信できます。


config.action_mailer.smtp_settings = {
  address: "smtp.gmail.com",
  port: 587,
  domain: "example.com",
  user_name: ENV["GMAIL_USERNAME"],
  password: ENV["GMAIL_PASSWORD"],
  authentication: "plain",
  enable_starttls_auto: true
}

addressはGmailの郵便局の住所です。 port 587は暗号化通信を使う安全な入口です。

ユーザー名とパスワードは、直接書かずにENVを使います。 ENVとは「環境変数」で、パスワードをコードに残さない安全な方法です。

4. SendGridのSMTP設定と特徴

4. SendGridのSMTP設定と特徴
4. SendGridのSMTP設定と特徴

SendGridは大量メール送信に強い、Railsと相性の良いメール配信サービスです。 本番運用ではGmailより安定します。


config.action_mailer.smtp_settings = {
  address: "smtp.sendgrid.net",
  port: 587,
  user_name: "apikey",
  password: ENV["SENDGRID_API_KEY"],
  authentication: :plain,
  enable_starttls_auto: true
}

SendGridではユーザー名は固定でapikeyを使います。 実際の秘密情報はAPIキーで管理します。

例えると、SendGridは「大量配達が得意な大きな郵便局」です。

5. Amazon SESのSMTP設定と本番向けポイント

5. Amazon SESのSMTP設定と本番向けポイント
5. Amazon SESのSMTP設定と本番向けポイント

Amazon SES(Simple Email Service)はAWSが提供する本格的なメール送信サービスです。 大規模サービスや商用利用でよく使われます。


config.action_mailer.smtp_settings = {
  address: "email-smtp.ap-northeast-1.amazonaws.com",
  port: 587,
  user_name: ENV["SES_SMTP_USERNAME"],
  password: ENV["SES_SMTP_PASSWORD"],
  authentication: :login,
  enable_starttls_auto: true
}

リージョン(ap-northeast-1)は東京リージョンを意味します。 AWS管理画面でSMTP用ユーザーを作成して使います。

6. TLSとは?メール暗号化の仕組み

6. TLSとは?メール暗号化の仕組み
6. TLSとは?メール暗号化の仕組み

TLS(ティーエルエス)とは、通信内容を暗号化する仕組みです。 メール本文やパスワードが盗み見されないように守ります。

Railsではenable_starttls_auto: trueを設定することで、 SMTP通信が自動的にTLSで暗号化されます。


enable_starttls_auto: true

これは「手紙を封筒に入れて送る」イメージです。

7. SMTP設定後の動作確認方法

7. SMTP設定後の動作確認方法
7. SMTP設定後の動作確認方法

設定が終わったら、Railsコンソールでテスト送信します。


rails console
UserMailer.test_mail.deliver_now

エラーが出ず、メールが届けば設定成功です。 ログにTLS関連の警告が出ていないかも確認しましょう。

カテゴリの一覧へ
新着記事
New1
Ruby
“すべてはオブジェクト”を体感!初心者向けRubyのオブジェクト指向入門【irbで学ぶ】
New2
Ruby
Rubyの標準入出力を完全ガイド!puts・print・pの違いとデバッグ活用法
New3
Ruby
Gemとは?RubyGemsとBundlerを初心者向けに完全解説!依存関係管理も図解でわかりやすく理解
New4
Ruby
Rubyの文字エンコーディング入門!UTF-8・マジックコメント・外部/内部エンコーディングを完全解説
人気記事
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
Ruby
Rubyの始め方ガイド:インストールから最初のHello Worldまで(Windows/Mac/Linux)
No.4
Java&Spring記事人気No4
データベース
PostgreSQLのWHERE句を徹底解説!初心者でもわかるSQLデータ抽出の基本
No.5
Java&Spring記事人気No5
Ruby
Rubyのfind/detect/find_indexを徹底解説!目的のデータを素早く探す方法
No.6
Java&Spring記事人気No6
Ruby
Rubyで比較演算子を完全解説!==・===・<=>・eql? の使い分け
No.7
Java&Spring記事人気No7
Ruby
Rubyのselect/reject/filterの使い方を完全解説!初心者向けの条件抽出レシピ
No.8
Java&Spring記事人気No8
データベース
PostgreSQLで順位付け!ROW_NUMBER関数の使い方を初心者向けに徹底解説