【问题标题】:Why my recoverable module from Devise gem isn't working?为什么我的 Devise gem 中的可恢复模块不起作用?
【发布时间】:2012-10-18 14:40:34
【问题描述】:

我有下一个代码的 UserMailer 类:

用户.rb:

 devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable

  -----------------

 class UserMailer < ActionMailer::Base

 default :from => "denys.medynskyi@gmail.com"

 def password_reset(user, password)
   @user = user
   @password = password
  mail(:to => user.email,
     :subject => 'Password Reset Notification')
  end

  def congrats_email(user)
    mail(to: user.email, subject: "Welcome Message")
 end

 end

setup_mail.rb:

    ActionMailer::Base.smtp_settings = {
   :address              => "smtp.gmail.com",
   :port                 => 587,
   :domain               => "gmail.com",
   :user_name            => "denys.medynskyi",
   :password             => "********",
   :authentication       => "plain",
   :enable_starttls_auto => true
    }

来自 devise.rb:

Devise.setup do |config|
  # ==> Mailer Configuration
  config.mailer_sender = "UserMailer"
end

在忘记密码提交后,我转到某个页面,但它没有显示任何通知和不发送电子邮件。

我做错了什么?

【问题讨论】:

    标签: ruby-on-rails devise password-recovery


    【解决方案1】:

    我不是 100% 确定这是您的任何或所有问题的原因,但如果您尝试使用 Devise,请覆盖一些默认邮件行为,但不是全部 em>,你应该继承自 Devise::Mailer 而不是 ActionMailer::Base

    所以

    class UserMailer < Devise::Mailer
    

    编辑:DeviseDevise::Mailer 中调用以呈现密码重置邮件模板的方法是reset_password_instructions。所以你的方法甚至没有覆盖它。此外,Devise 的工作方式是资源最终调用发送指令电子邮件的方法。 reset_password_instructions 方法的工作只是从视图模板生成电子邮件。所以在我看来,您上面的代码并不能真正与正常的Devise 流一起使用。在您的应用中调用password_reset 是什么?

    【讨论】:

    • 它应该发送带有说明的电子邮件。
    猜你喜欢
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多