質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.91%

[本番環境] Rails+AWSのSESで本登録のリンク掲載メール送信したいが、うまくいかない。

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 2,656
退会済みユーザー

退会済みユーザー

 前提

 仕様   バージョン     
 Rails         5.02       
 EC2                
 MySQL(RDS)                
 ELB                

 困ってる問題

仕様としては、
ユーザ登録(アドレス) → 確認メール送信 → アカウント有効化
で、ローカルテストはうまくいってると思いますが、本番環境だと、
500 Internal Server Errorが起こる

 参考ページと設定

AWSのSESの初期設定は以下を参考に。
RailsでAmazon SES・Route53を用いてドメインメールを送信する

Rails内の設定は以下を参考に。
Amazon SES + aws-sdk-v1でメールをActionMailer経由で送信する。

Rails内の設定を記載しておきます。

Gemfile

gem 'aws-ses', '~> 0.6'

config/initializers/aws.rb

ActionMailer::Base.add_delivery_method :ses,
                                       AWS::SES::Base,
                                       access_key_id: ENV['AWS_ACCESS_KEY_ID'],
                                       secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
                                       server: 'email.us-west-2.amazonaws.com'

config/environments/production.rb

# AWSでメール送信
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :ses
config.action_mailer.default_url_options = { :host => '{ドメイン}.net' }

 追伸1 (現在の状況)

 状況   詳細     
1  AWSリミット解除済         あらゆるメールアドレスに送れるはず       
2  $ rails c production → TestMailer.test.deliver_now   送信可能、また受信も確認 

testメールの内容

class TestMailer < ApplicationMailer
  def test
    @greeting = "Hi"
    mail to: "{送信先メルアド}"
  end
end

 追伸2 結局できず、困ってること

Railsチュートリアルに沿って行った
アドレスによる本人確認のメールが送信されず、
システムエラーとなる。

イメージ説明
フォーム入力すると、
イメージ説明

500 Internal Server
システムエラーになってしまいます。

ローカル環境ではメール送信ができていることになっていると思いますが、
本番環境だとうまくいきません。メールのエラーログはどこに記載されるのかも探しています。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

Email address is not verified.とありますが、送信元のメールアドレスが、本当に管理下にあるものであることを事前に確認して登録しておく必要があります。

Amazon SES での E メールアドレスとドメインの検証(公式マニュアル)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/08/21 15:51

    はい、受け取れるアドレスでしかSESからメール発信することはできません。

    キャンセル

  • 2017/08/21 21:14

    SESでメールを「受信」することもできますので、inf@{登録ドメイン}.net宛のメールをS3に保存して確認するのが手っ取り早いのではないでしょうか。
    http://dev.classmethod.jp/cloud/receiving-email-with-amazon-ses/

    キャンセル

  • 2017/08/21 21:46

    TSuemuraさん ありがとうございます。
    追伸4 (現在の状況)にテストのメールが成功した旨を掲載しました。
    しかし、ユーザ登録時に、追伸5に掲載したとおり、
    ユーザ登録時に、本人確認のためのメールを送信したいのですが、
    そのメールはシステムエラーになってしまいます。ローカルではうまくいくのですが...。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る