アラフォーからのプログラミングとデザイン

大人から始めたプログラミングとデザインについてのあれこれ

herokuでメール送信ができない時の解決方法

f:id:simpledancer:20181211120114j:plain

やっとローカルでコンタクトフォームが完成!

うまく動いた!

ということでherokuにデプロイしよう、、、!と思ったら

送信ボタンを押すとエラーが出ました。

その解決方法です。

 production.rbに記入

今まで、メール送信をdevelopment.rbに書いてました。つまり開発環境ですね。

production.rbに書く必要がありました。

ただし、herokuのアプリにクレジットカードの登録が必要です。

railstutorial.jp

本番環境に書くコードは

```

Rails.application.configure do
  .
  .
  .
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  host = '<your heroku app>.herokuapp.com'
  config.action_mailer.default_url_options = { host: host }
  ActionMailer::Base.smtp_settings = {
    :address        => 'smtp.sendgrid.net',
    :port           => '587',
    :authentication => :plain,
    :user_name      => ENV['SENDGRID_USERNAME'],
    :password       => ENV['SENDGRID_PASSWORD'],
    :domain         => 'heroku.com',
    :enable_starttls_auto => true
  }
  .
  .
  .
end

ところでrailsチュートリアルではgmail設定ではなくてsendgridというやつになってますね。そこをメンターに指摘されて、gmailに変更することにしました。

そして、思い出しました、環境変数の設定というやつをしなくてはいけないんですよね。

:user_name => ENV['GMAIL_USERNAME'],
:password => ENV['GMAIL_PASSWORD'],

こういうやつ。

これの設定を変更してからまたherokuにデプロイをします。

gemもいれてなかった。。

 gemを入れ直して、もう一度チャレンジします。

simpledancer.hatenablog.com