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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

6375閲覧

Ruby on Railsでのaction_mailerのメールをAmazon SES経由で送りたい。

THitokuse

総合スコア49

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2019/02/12 01:54

前提・実現したいこと

Ruby on Railsでaction_mailerを使った招待メールを実装しています。
その際、Amazon SESを使用したメール送信を行いたいのですが、SESに接続した途端にメールが送信できなくなってしまいます。
なにか解決策があればお願いします。

該当のソースコード

Gemfile

1class UserMailer < ActionMailer::Base 2 default :from => "MyDomain <info@sample.net>" 3end

config/initializers/aws.rb

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

config/environments/development.rb

1 config.action_mailer.perform_caching = false 2 3 config.action_mailer.default_url_options = { host: 'sample.net' } 4 # メールサーバー(AmazonSES)経由でメール送信 5 config.action_mailer.delivery_method = :ses

補足情報(FW/ツールのバージョンなど)

SESのリージョンは北バージニアです。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

1. 番号リストログの確認

log

1AWS::SES::ResponseError (AccessDenied - ******* is not authorized to perform `ses:SendRawEmail'):

EC2のIAMの権限エラーが判明

2. 解決方法
EC2のAMIポリシー編集で
Action [
ses:SendRawEmail
]
を追加したところ解決に至りました。

投稿2019/02/12 04:24

編集2019/02/12 04:35
THitokuse

総合スコア49

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

【AWS】Amazon SES / Messaging・Route53を用いてドメインメールを送信する

一通りのことがここに書いてあると思います。Railsの設定以外も見直してみてください。

ぱっと思いつくのは環境変数にKeyやSecretが入っているか、でしょうか。
Railsの実行時に含まれていないかもしれないです。
含まれている場合でも、上記手順で作成しないとメールが送れなかった経験があるので、クレデンシャルが正しいか確認するのも必要かと。

投稿2019/02/12 01:59

編集2019/02/12 02:04
toushimi

総合スコア117

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

THitokuse

2019/02/12 03:35

``` Error performing ActionMailer::DeliveryJob (Job ID: ----------------) from Async(mailers) in 1156.29ms: AWS::SES::ResponseError (AccessDenied - User `arn:aws:iam::00000000:user/system_app_s3' is not authorized to perform `ses:SendRawEmail' on resource `arn:aws:ses:us-east-1:000000000:identity/sample.net'): ``` 先ほどログを確認したのですが、上記エラーが出ていることが判明しました。 調べてもあまりわからなかったのですが、なにが原因かわかりますでしょうか?
THitokuse

2019/02/12 03:36

Job IDなどは隠しております。わかりにくくて申し訳ありません。
toushimi

2019/02/12 03:50

み、みんな書いてありますね……。 AccessDenied: 権限が足りない どのユーザー?: arn:aws:iam::00000000:user/system_app_s3 どのメソッド?: ses:SendRawEmail どこで?: arn:aws:ses:us-east-1:000000000:identity/sample.net 権限を見直してみてください。どう見直すのかは調べるのをお勧めします。
THitokuse

2019/02/12 04:18 編集

度々ありがとうございます。 EC2のIAMの権限エラーでした。 - 解決方法 EC2のAMIポリシー編集で Action [ ses:SendRawEmail ] 追加しました。 お手数おかけしました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問