使用动作邮件程序通过我的Gmail帐户发送邮件时收到此错误。
SweepstakesController#show中的Net :: SMTPAuthenticationError 535-5.7.8不接受用户名和密码 了解更多信息: ParticipantMailer.winner_confirmation(@result).deliver_now!
我已经仔细检查了我的电子邮件和密码,我已经重新启动了我的服务器,同时我已经完成了所有与此错误相关的问题并实施了每个答案,但无济于事。 我的development.rb文件是:
config.action_mailer.default_url_options = { host: 'localhost', port: 3000}
ActionMailer::Base.delivery_method= :smtp
ActionMailer::Base.smtp_settings = {
:address =>"smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "my_email@gmail.com",
:password => "my_password",
:authentication => 'plain',
:openssl_verify_mode => 'none'
}
控制器中的逻辑:
def show
@sweepstake = Sweepstake.find(params[:id])
@participant = Participant.where(:sweepstake_id => @sweepstake.id )
b = @sweepstake.winner_count
@result = Array.new
b.times do
@result << @participant[rand(@participant.count)]
end
ParticipantMailer.winner_confirmation(@result).deliver_now!
end
participant_mailer.rb文件:
class ParticipantMailer < ApplicationMailer
default from: 'rajesh010794@gmail.com'
def winner_confirmation(result)
@result = result
@url = 'http://example.com/login'
Rails.logger.info(@result.inspect)
@result.each do |i|
mail(to: i.participant_email, subject: 'Congratulation')
end
end
end
答案 0 :(得分:2)
我找到了答案Goto config/initializers/setup_mail.rb
检查那里的配置是否与development.rb文件中写的配置相匹配。它在两个文件中应如下所示:
config.action_mailer.smtp_settings = {
:address =>"smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "my_mail@gmail.com",
:password => "**********",
:authentication => 'plain',
:enable_starttls_auto => true,
:openssl_verify_mode => 'none'
}
这解决了我的问题。
答案 1 :(得分:1)
根据RailsGuides,gmail配置如下所示:
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'example.com',
user_name: '<username>',
password: '<password>',
authentication: 'plain',
enable_starttls_auto: true }
您遗失了enable_starttls_auto
。我认为在domain
中你应该放置你的域名,而不是gmail.com
。
在我为帐户开启less secure applications后,我使用了上述设置。
另外,我在Google文档中读过您可能需要使用Unlock Captcha。
答案 2 :(得分:0)
我只花了几个小时来解决这个问题,并为Gmail
重新配置Rails
和two-factor authorization
设置,等等,最后,真正的问题是我潜入了这个文件我的应用程式-
config/initializers/setup_mail.rb
-从几年前开始,它的设置就很旧。删除此文件后,Stack上用于解决此问题的所有其他建议均起作用。