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

时间:2017-12-26 14:51:49

标签: ruby-on-rails devise

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

我的代码如下所示:

在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>下初始化者> devise.rb我补充道:

config.mailer_sender = "xyz@gmail.com"

并在config>下environment.rb中:

ActionMailer::Base.delivery_method = :smtp

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

  

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

答案 1 :(得分:1)

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

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