[英]devise forgot password not working
我正在使用devise在Rails 3上進行身份驗證。登錄,注銷,注冊工作正常,但是在忘記密碼的情況下沒有任何反應。 當我單擊“忘記密碼”鏈接時,它將帶我到http://localhost:3000/users/password/new
鏈接,然后出現一個表格,詢問我的電子郵件地址和“向我發送重置密碼”指示按鈕,但是當我單擊該按鈕時按鈕,它將帶我到http://localhost:3000/users/sign_in
但我沒有收到有關重置密碼的郵件。
在控制台上,我可以看到以下內容:
Sent mail to nikitasalunkhe.3@gmail.com (968ms)
Date: Tue, 05 Jun 2012 13:14:22 +0530
From: please-change-me-at-config-initializers-devise@example.com
Reply-To: please-change-me-at-config-initializers-devise@example.com
To: nikitasalunkhe.3@gmail.com
Message-ID: <4fcdb8d6de776_dd624e71f0a78a7@user-G41MT-S2.mail>
Subject: Reset password instructions
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
<p>Hello nikitasalunkhe.3@gmail.com!</p>
<p>Someone has requested a link to change your password, and you can do this through the link below.</p>
<p><a href="http://localhost:3000/users/password/edit?reset_password_token=gUB8L9nWNikjVJpnhbDW">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>
但我在收件箱中沒有看到郵件。
以下是我的config / initializer / devise.rb文件的代碼:
Devise.setup do |config|
config.mailer_sender = "nikitasalunkhe.3@gmail.com"
config.mailer = "Devise::Mailer"
require 'devise/orm/active_record'
config.case_insensitive_keys = [ :email ]
config.stretches = 10
config.use_salt_as_remember_token = true
config.reset_password_keys = [ :email ]
這是development.rb文件代碼:
Alumnicell::Application.configure do
# Settings specified here will take precedence over those in config/application.rb
# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# since you don't have to restart the webserver when you make code changes.
config.cache_classes = false
# Log error messages when you accidentally call methods on nil.
config.whiny_nils = true
# Show full error reports and disable caching
config.consider_all_requests_local = true
config.action_view.debug_rjs = true
config.action_controller.perform_caching = false
# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = false
# Print deprecation notices to the Rails logger
config.active_support.deprecation = :log
# Only use best-standards-support built into browsers
config.action_dispatch.best_standards_support = :builtin
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
end
我應該做些什么改變才能使其正常工作?
您是否安裝了本地郵件程序守護程序? 我最好的解決方案是像這樣使用gmail smtp(使用您的設置):
在config / environments / development.rb中:
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => 'mondomaine.com',
:user_name => 'smtp@mondomaine.com',
:password => 'mypassword',
:authentication => 'plain',
:enable_starttls_auto => true }
並刪除您的行:
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
在生產模式下,您將有一個本地郵件服務器作為后綴。
解決此問題的另一種方法是創建文件“ config / initializer / setup_mail.rb”
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "googlemail.com",
:user_name => "ayushcshah@gmail.com",
:password => "secret_password",
:authentication => "plain",
:enable_starttls_auto => true
}
解決了這個問題...在我的development.rb文件中做了如下更改:
require 'tlsmail'
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:enable_starttls_auto => true,
:address => "smtp.gmail.com",
:port => 587,
:tls => true,
:domain => 'gmail.com', #you can also use google.com
:authentication => :plain,
:user_name => "nikitasalunkhe.3@gmail.com",
:password => "seceret_password"
}
config.action_mailer.default_url_options = { :host => 'my@gmail.com' }
嘗試使用ur gmail帳戶名稱代替localhost:3000。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.