@maxprof
Студент

Почему не отправляется восстановление пароля на почту (Devise)?

Здравствуйте, подключил и настроил изначально гем Devise. Но не работает отправка сообщения на почту при попытке восстановления пароля.
Код application.rb
ActionMailer::Base.smtp_settings = {
        :address        => 'smtp.gmail.com',
        :domain         => 'mail.google.com',
        :port           => 587,
        :user_name      => ENV['почта@gmail.com'],
        :password       => ENV['пароль'],
        :authentication => :login,
        :enable_starttls_auto => true
    }

В development.rb добавил 2 строчки
config.action_mailer.default_url_options = { :host => "localhost" }
  config.action_mailer.delivery_method = :smtp

При попытке отправки страница долго грузиться и перезагружается. В консоли следующий код:
Devise::Mailer#reset_password_instructions: processed outbound mail in 212.1ms

Sent mail to maxprofkom@gmail.com (30007.4ms)
Date: Sat, 12 Mar 2016 14:49:31 +0200
From: mailer@example.com
Reply-To: mailer@example.com
To: maxprofkom@gmail.com
Message-ID: <56e4105bbf21c_2ca828eeb4c2566c@max-PC.mail>
Subject: Reset password instructions
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<p>Hello maxprofkom@gmail.com!</p>

<p>Someone has requested a link to change your password. You can do this through the link below.</p>

<p><a href="http://localhost/users/password/edit?reset_password_token=L3A6c7mtnPzWdxqfNs9L">Change my password</a></p>

<p>If you didn't request this, please ignore this email.</p>
<p>Your password won't change until you access the link above and create a new one.</p>

Redirected to http://localhost:3000/users/sign_in
Completed 302 Found in 30475ms (ActiveRecord: 19.3ms)
  • Вопрос задан
  • 662 просмотра
Решения вопроса 1
Dem1
@Dem1 Куратор тега Ruby on Rails
Ruby on Rails developer
  1. rails new EmailDevise
  2. Добавить в Gemfile gem 'devise'
  3. bundle install
  4. rails generate devise:install
  5. rails generate devise User
  6. rake db:create
  7. rake db:migrate
  8. По этой ссылке создал пароль для gmail app
  9. В config/initializers/devise.rb поставить config.mailer_sender = 'свой email'
  10. В config/environments/development.rb добавить следующие настройки:
config.action_mailer.default_options = { from: 'твой email' }
  config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
      address:              'smtp.gmail.com',
      port:                 587,
      user_name:            'твой email',
      password:             'пароль созданный для gmail app',
      authentication:       'login',
      enable_starttls_auto: true
  }

Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Чтобы с localhost отправлять, нужны танцы с бубном. Где-то на просторах stackoverflow даже звучал вопрос "а на фига козе баян?". Задеплоите и должно быть ок...А так у вас письмо в консоль вылетело. Собственно, чего больше нужно от development?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы