gmail阻止rails应用程序发送电子邮件

时间:2015-05-19 16:52:23

标签: ruby-on-rails ruby email gmail

我很确定我的每一个配置都正确,但我一直得到'Net :: SMTPAuthenticationError:535-5.7.8不接受用户名和密码。尝试通过我的rails应用程序发送邮件时,请参阅“错误”。此外,错误消息中的“at”后面只有一个空格,所以我甚至不知道在哪里可以查找更多信息。我也100%确定密码和电子邮件是否正确。

在我的config / development.rb中(我在application.rb中也有这个)

  config.action_mailer.delivery_method = :smtp
 # SMTP settings for gmail

config.action_mailer.smtp_settings = { 

 :address              => 'smtp.gmail.com',
 :port                 => 587,
 :domain               => 'gmail.com',
 :user_name            => 'username@gmail.com',
 :password             => 'password',
 :authentication       => 'plain',
:enable_starttls_auto => true
}

我允许在实际的Gmail帐户上访问安全性较低的应用。

2 个答案:

答案 0 :(得分:4)

Google阻止所有可疑的登录尝试。通过使用应用密码,我能够解决问题:

  1. 尚未启用两步验证。
  2. 转到App passwords(Google会要求您再次登录以在此处进行验证)
  3. 创建新的应用程序密码:在选择应用程序下选择其他(自定义名称),然后输入应用程序的名称(您想要的任何名称)
  4. 单击生成,将显示一个带有密码的弹出窗口。在您的Rails配置中使用该密码,而不是您的Google密码。

答案 1 :(得分:3)

这是适用于Google商业应用的配置。尝试将您的端口更改为465

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  tls: true,
  address:              ENV["EMAIL_URL"],
  port:                 465,
  domain:               ENV["EMAIL_DOMAIN"],
  user_name:            ENV["EMAIL_USER_NAME"],
  password:             ENV["EMAIL_PASSWORD"],
  authentication:       'plain',
  enable_starttls_auto: true  }