Rails5.2でSendGridをつかってメールを送信する設定

Ruby on Rails

Rails5.2でSendGridを使ってメールを送信したい時は下記のような設定をします。ユーザに何を指定するのかとか罠が多かった記憶が…

・config/environments/production.rb

# メール送信(SendGrid利用)
user = 'apikey'
pass = Rails.application.credentials.dig(:sendgrid, :api_key)

config.action_mailer.smtp_settings = {
  :user_name => user,
  :password => pass,
  :domain => 'hogehoge.com',
  :address => 'smtp.sendgrid.net',
  :port => 2525,
  :authentication => :plain,
  :enable_starttls_auto => true
}
# メール設定(ホスト)
config.action_mailer.default_url_options = { host: 'hogehoge.com' }

パスワードは直書きでも行けるとは思いますが、セキュリティ的によろしくないので、credentialsを使って暗号データとして保存しておきました。もしくは環境変数管理とかでもOKですね。

EDITOR=vim bin/rails credentials:edit

を実行して中身にこんな風に記載(追記)しておきます。インデント注意です!

sendgrid:
  api_key: hogehogeapikey
Rails5.2から追加されたsecrets周りについて(secrets.yml→credentials.yml.encへの対応)
Rails5.2アプリから、secrets周りが変化しました。config/secrets.ymlがなくなって、conf...

こちらの記事にもcredentialsを使ったsecrets周りの話を書いています。

 

コメント