设计 - “忘记密码”功能 - 不接受用户名和密码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计 - “忘记密码”功能 - 不接受用户名和密码相关的知识,希望对你有一定的参考价值。

我正在尝试设置设计附带的“忘记密码”功能。我正在使用rails 5.它总是给我错误:“535-5.7.8用户名和密码不被接受”(User :: PasswordsController #net中的Net :: SMTPAuthenticationError虽然。

我的代码看起来像这样:

在development.rb中我添加了:

config.action_mailer.default_url_options = { host: 'localhost', port:3000 }
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
config.action_mailer.default :charset => "utf-8"

ActionMailer::Base.smtp_settings = {
 :address => "smtp.gmail.com",
 :port => 587,
 :authentication => :plain,
 :domain => 'gmail.com',
 :user_name => 'xyz@gmail.com',
 :password => 'abcde',
 }

在config> initialisers> devise.rb下我添加了:

config.mailer_sender = "xyz@gmail.com"

在config> environment.rb下:

ActionMailer::Base.delivery_method = :smtp

我错过了什么或者我做错了什么?

还有一个问题:我需要将它链接到我的个人帐户(即用真实电子邮件帐户的详细信息替换user_name和密码),电子邮件没有发送的默认设备帐户,对吧?我只是想知道,因为这样我团队中的每个人都能看到我们正在使用的邮件帐户的密码,对吗?

任何建议都将受到高度赞赏!提前致谢。

答案

SMTPAuthenticationError是SMTP身份验证层的错误。

这意味着您尝试使用的任何SMTP服务都会报告某种身份验证问题。

我不使用Gmail作为我的SMP,但这个错误对我来说似乎很奇怪,因为它说的是Username and Password not accepted,这与错误不同。

进一步的研究表明,Gmail不再接受安全性较低的SMTP请求。

Google现在不接受来自不太安全的应用程序的登录。因此,您需要转到https://myaccount.google.com/security滚动到底部并打开“允许不太安全的应用程序:打开”。现在,当您将SMTP详细信息添加到“发送为”时,谷歌将接受它们。您需要在“发送为”部分中为要添加的电子邮件ID执行此操作。

另一答案

我认为这与你的Gmail设置有关。如果您在使用gmail发送电子邮件时看到Net::SMTPAuthenticationError等错误,请访问您的Gmail设置并启用安全性较低的应用:

"MyAccount" > "Sign-in & security" > "Connected apps & sites" > "Allow less secure apps"

以上是关于设计 - “忘记密码”功能 - 不接受用户名和密码的主要内容,如果未能解决你的问题,请参考以下文章

[阮一峰]找回密码的功能设计

找回密码功能设计

关于在 asp.net mvc 中实现忘记密码功能的一些问题

设计忘记密码不起作用

忘记密码功能 Spring(密码检索)

三步而不是四步忘记密码功能