Railsでアプリケーションを作った際のメール送信処理をどうするか。自前でメールサーバーを立てるのはセキュリティリスクもあるし、立てるのも結構大変だったりする。こういうときにAmazon SESは簡単に利用できて便利。
使い方
- AWS管理画面にログインして、IAMにアクセス。新規でアカウントを作成して AmazonSESFullAccess の権限を付与する。アクセスキーIDとシークレットキーを保存しておく。
- gemをインストール。
gem 'aws-sdk-rails'
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',
)
ENV[‘AWS_ACCESS_KEY_ID’]とENV[‘AWS_SECRET_ACESS_KEY’]は環境変数に設定する。環境変数をGitにアップしないように注意!
environments/development.rb に以下を設定。本番で利用したい場合は、production.rbに。
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :ses
host = 'localhost:3000'
config.action_mailer.default_url_options = { host: host, protocol: 'http' }
gemがほぼすべて面倒を見てくれるので非常に便利である。