使用动作邮件程序通过我的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 => "[email protected]",
: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: '[email protected]'
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
最佳答案
我找到了答案Goto config/initializers/setup_mail.rb
检查那里的配置是否与development.rb文件中写的配置相匹配。两个文件中的外观都应该如下所示:
config.action_mailer.smtp_settings = {
:address =>"smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "[email protected]",
:password => "**********",
:authentication => 'plain',
:enable_starttls_auto => true,
:openssl_verify_mode => 'none'
}
这解决了我的问题。
关于ruby-on-rails - 535-5.7.8用户名和密码不接受错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32450382/