LoginSignup
50

More than 5 years have passed since last update.

HerokuでDeviseのメール通知を利用するまでの手順

Posted at

HerokuでRails3.2.2、Devise2.1.2を使った時に、パスワード忘れた時にメール送信が必要だったので、その時のメモ。

まずherokuにはSMTPサービスが無いので、外部サービスを使う。
今回使ったのはこれ。月に200回まで送信無料。他にもGmailもできて、月500通いけるらしいのですが、そんなに使わないので、こっちを試しました。
heroku add-on SendGrid

サービス登録

まずはSendGridに登録します。
まずFreeでSign upします。なんかいろいろ入力して登録します。
するとメールが届くので、Active Your Accountから登録画面に移動します。
AccoutSettingとProfileSettingをいじいじすれば、利用できるようになります。

Railsアプリの設定

設定するところは2つ。
1.environment.rbに下記を追記。SMTPサーバについての記述。

config/environment.rb
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
}

2.config/environments/production.rbのconfigureのブロック内に、下記を追記。メールでサーバーが自身のアプリのURLを作成するとき、下記のホスト名を利用してアドレスを作成します。

config/environments/production.rb
config.action_mailer.default_url_options = { :host => 'herokuアプリのホスト名' }

あとはデプロイしましょう。
deviseのログイン画面でForgot your password?からメールを入力して送信すると、please-change-me-at-config-initializers-devise@example.comからメールが来ます。
アドレスをちゃんとしたい奴に変えたい場合は、自分で調べてくださいなー
気分が向いたら自分も変えます。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
50