Rails3 + deviseのメール設定
認証機能(サインアップ、ログイン、ログアウトetc)が簡単に実装できるので
deviseはよく使うのですが、その時に少しハマったのでメモ。
以下、development環境での設定
/config/environments/development.rb
デフォルトではfalseになっているが、
trueにすることでメール送信の際のエラーが表示される
config.action_mailer.raise_delivery_errors = true
ホストとポートの設定
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
SMTPサーバーのための設定を追記
# SMTPサーバーの設定 config.action_mailer.delivery_method = :smtp config.action_mailer.default :charset => "utf-8" config.action_mailer.perform_deliveries = true config.action_mailer.smtp_settings = { :address => 'smtp.gmail.com', :port => 587, :domain => 'gmail.com', :authentication => :plain, :user_name => 'メールアドレス', :password => 'パスワード, :enable_starttls_auto => true, }
ちなみに上記はGmail用の設定。
"config.action_mailer.perform_deliveries = true"の箇所は、メール通知全てに対する設定。falseにすると一切のメール通知がされなくなる。
もうひとつ修正箇所
/config/initialize/devise.rb
下記の通り変更
config.mailer_sender = "メールアドレス"
ちなみにログイン時にユーザー名 or メールアドレスでログイン出来るように最初にしておいて、その後だいぶたってからパスワードリセットに取り掛かったから忘れててハマったけど、その設定後でも普通にできる。
設定方法は下記リンクに詳しい