使用动作邮件程序通过我的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/

10-13 02:17