UsersController中的Net :: SMTPAuthenticationError #create

时间:2016-06-22 07:18:55

标签: ruby-on-rails ruby ruby-on-rails-3 gmail

我们的Rails 3.2应用程序的“重新发送激活码”邮件功能一直有效,直到代码从之前的开发人员转移到我们这里。现在我们得到了这个错误

Net::SMTPAuthenticationError in UsersController#create  

我们的邮件设置保持不变:

ActionMailer::Base.smtp_settings = {  
:address              => "smtp.sendgrid.net",  
:port                 => 587,  
:domain               => "example.com",  
:user_name            => "username",  
:password             => "password",  
:authentication       => "plain",  
:enable_starttls_auto => true  
}  

我们在某种程度上无法弄清楚电子邮件停止工作的原因 我们检查了gmail服务器还通过telnet回复给我们 我们还在安全性中启用了Gmail的安全性较低的应用功能 - >帐户权限 - >访问不太安全的应用程序
提前谢谢。

1 个答案:

答案 0 :(得分:0)

你提到使用Gmail的设置,我说你应该试试这个:

ActionMailer::Base.smtp_settings = {
 address: "smtp.gmail.com",
 port: 587,
 user_name: ENV['GMAIL_USERNAME'],
 password: ENV['GMAIL_PASSWORD'],
 authentication: :plain,
 enable_starttls_auto: true
}

如果你正在使用Sendgrid,如上所述你应该有:

ActionMailer::Base.smtp_settings = {
    user_name: ENV['SENDGRID_USERNAME'],
    password: ENV['SENDGRID_PASSWORD'],
    domain: 'heroku.com', #for your helo domain
    address: 'smtp.sendgrid.net',
    port: 587,
    authentication: :plain,
    enable_starttls_auto: true
  }

不要忘记妥善定义ENV个变量。 您可以找到more discussion around this here