同じように設定に手こずったので、メモとして残しておきます。
たまたまうまくいったのかもしれませんが、誰かの問題解決に役立てれば幸いです。
1.config/environments/production.rbに下記を設定し、git経由でgit push heroku master
で反映させる。
Ruby
1Rails.application.configure do
2 :
3 config.action_mailer.raise_delivery_errors = true # ← デフォルトでfalseとなっているのでtrueに変更
4 config.action_mailer.delivery_method = :smtp # ← このまま
5 host = '<your heroku app>.herokuapp.com' # ← 変更する!!!!!
6 config.action_mailer.default_url_options = { host: host } # ← このまま
7 ActionMailer::Base.smtp_settings = {
8 :address => 'smtp.sendgrid.net', # ← このまま
9 :port => '587', # ← このまま
10 :authentication => :plain, # ← このまま
11 :user_name => ENV['SENDGRID_USERNAME'], # ← このまま
12 :password => ENV['SENDGRID_PASSWORD'], # ← このまま
13 :domain => 'heroku.com', # ← このまま
14 :enable_starttls_auto => true # ← このまま
15 }
16 :
17end
2.アドオンは必ず下記コマンドで追加する。
※Herokuの画面上からは追加しない。
heroku addons:create sendgrid:starter
3.Herokuの画面からSendgridをクリックするとメールアドレスの登録確認フォームが表示される。
※ここに記載するのは、xxxx@heroku.comではなく、自分が受信できるメールアドレスにする。
※登録確認フォームが表示されない場合は、Herokuからアプリを削除して、再度、作成し、2からやり直す。
4.SendgridのページでSMTPのAPIを取得し、Herokuに設定し、Dynoを再起動する。
heroku config:set SENDGRID_API_KEY=xxxxxxxxxxxxx
※ENV['SENDGRID_USERNAME']とENV['SENDGRID_PASSWORD']は、2で自動作成済みのため設定は必要なし。
5.システム側でメールを送信してから、Sendgridのページを再読み込みするとメールのVerifyが完了します。
〜絶対にやってはいけないこと〜
Githubに、SENDGRID_API_KEY、SENDGRID_PASSWORD、SENDGRID_USERNAMEを反映したファイルをアップしない。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。