これまでに作った機能について簡単にまとめていく。

今回は、

Heroku+SendGirdを使ったメール送信機能の作成

前提条件

Herokuのアカウントを持っていること
開発環境でのメール送信機能があること
開発環境でのメール送信機能についてはこちら

Herokuへログイン

$ heroku login

できない場合は

$ heroku login --interactive

アプリケーションの作成

既にある場合は省略
アプリ名は設定しなかった場合は自動で決定

$ heroku create アプリ名

SendGridの導入

$ heroku addons:create sendgrid:starter

本番環境でのメールの設定

config/environments/production.rb

config.action_mailer.default_url_options = { host: 'Herokuアプリのドメイン' }
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
  user_name: ENV['SENDGRID_USERNAME'],
  password: ENV['SENDGRID_PASSWORD'],
  domain: "heroku.com",
  address: "smtp.SendGrid.net",
  port: 587,
  authentication: :plain,
  enable_starttls_auto: true
}

ドメインはheroku domainsで確認

USERNAME ・ PASSWORDの取得

$ heroku config:get SENDGRID_USERNAME
$ heroku config:get SENDGRID_PASSWORD

USERNAME ・ PASSWORDの設定

$ heroku config:set SENDGRID_USERNAME="取得したSENDGRID_USERNAME"
$ heroku config:set SENDGRID_PASSWORD="取得したSENDGRID_PASSWORD"

注意
SendGridのUSERNAMEとPASSWORDの値を直接書き込まない
GitHubへプッシュした場合SendGridのアカウントが凍結される

Gitへコミット

Herokuへデプロイ

$ git push heroku master

初めてデプロイする場合はこちらも確認

以上で作成完了