メール機能の実装
Railsでメール送信機能を作成する。 メールサービス Amazon SES を使用する。
config/secrets.yml
default: &default
aws_access_key_id: <YOUR_AWS_ACCESS_KEY>
aws_secret_access_key: <YOUR_AWS_SECRET_ACCESS_KEY>
AWS SESのgemをインストールする。
# Gemfile.rb
gem 'aws-ses', '~> 0.6'
intializer
でActionMailerの設定をする。
ここで、aws_access_key_idとaws_secret_access_keyを入力する。
config/initializer/aws.rb
ActionMailer::Base.add_delivery_method :ses,
AWS::SES::Base,
access_key_id: Rails.application.secrets.aws_access_key_id,
secret_access_key: Rails.application.secrets.aws_secret_access_key,
server: 'email.us-west-2.amazonaws.com'
次に、application.rb
でdeliver_method
を設定する。
今回はAWS SESを使用するので:ses
を代入する。
application.rb
config.action_mailer.delivery_method = :ses
ActionMailerを作成する。
rails g mailer NotificationMailer
生成されたActionMailerにテスト用のメソッドを作成する。
NotificationMailer.rb
class NotificationMailer < ApplicationMailer
default from: 'no-reply@yourdomain.com'
def notify_url
mail to: 'kawamura@yourdomain.com', subject: 'Test'
end
end
メールの送信が可能か確認する。
$ rails c
> NotificationMailer.notify_url.deliver_now
送信機能は完了。
sidekiqのインストール
gem 'sidekiq'
config/sidekiq.yml
:concurrency: 25
:pidfile: ./tmp/pids/sidekiq.pid
:logfile: ./log/sidekiq.log
:queues:
- default
- mailers
:daemon: true
sidekiqを実行する
bundle exec sidekiq -C config/sidekiq.yml