概要

Rails の ActionMailer でメールクライアントに AWS SES を使う場合の設定方法を書いています。

AWS アクセスキーを用意する

SendRawEmail オペレーションを実行可能な IAM ユーザーのアクセスキーを作成します。
作成方法はこちらを参考にしてください。

AWS SDK の Rails 用プラグインをインストール

AWS SDK には Rails との統合を簡単に可能にするプラグインが公式で用意されています。
Gemfile に次の行を追記し、bundle install を実行します。

gem 'aws-sdk-rails'

環境ファイルへ設定を追加する

config/initializers フォルダにaws.rbファイルを作成します。
ここで先ほど作成したアクセスキーや使用するリージョンを設定します。

# config/initializers/aws.rb
creds = Aws::Credentials.new(
  ENV['AWS_ACCESS_KEY_ID'],
  ENV['AWS_SECRET_ACESS_KEY']
)

Aws::Rails.add_action_mailer_delivery_method(
  :ses,
  credentials: creds,
  region: 'ap-northeast-1'
)

あとは、production.rb など使用したい環境下のファイルで delivery_method:ses を指定するだけです。

# config/environments/{staging,production}.rb
config.action_mailer.delivery_method = :ses