Gmail的动作邮件程序配置

我正在尝试使用Gmail SMTP向我的应用添加电子邮件。 我之前已经完成了“不太安全的应用程序”的方式,但我不想在这个项目中使用这个选项。

我试图调查谷歌的文档或一些gem,使其工作,但无济于事。 每个人都只发送一些代码(如下所示,通常与我的相同)或者告诉我尝试’安全性较低的应用’。

我在production.rb上的当前动作邮件程序配置是:

config.action_mailer.perform_caching = false config.action_mailer.delivery_method = :smtp config.action_mailer.default_url_options = { :host => ENV['DOMAIN_NAME'] } config.action_mailer.asset_host = ENV['DOMAIN_NAME'] config.action_mailer.smtp_settings = { :address => 'smtp.gmail.com', :port => 587, :authentication => :plain, :user_name => ENV['USERNAME'], :password => ENV['PASSWORD'], :enable_starttls_auto => true } 

有人说我需要“:domain =>’gmail.com’”,但是它的“安全性较低的应用程序”选项可行,所以我的猜测是问题不是那么简单。 此外,人们谈论将’authentication :: plain’更改为:login。

另外,我意识到在官方的Rails文档中它说:

注意:截至2014年7月15日,Google增加了其安全措施,现在阻止其认为不太安全的应用程序的尝试。 您可以在此处更改您的Gmail设置以允许尝试。 如果您的Gmail帐户启用了双因素身份validation,那么您需要设置应用密码并使用该密码而不是常规密码。 或者,您可以使用另一个ESP通过将上面的’smtp.gmail.com’替换为您的提供商的地址来发送电子邮件。

(来自http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration-for-gmail )

但我不确定这个解决方案是否仍然需要启用“不太安全的应用程序”选项,这不是我需要的。 有没有人解决这个问题,而不诉诸“不太安全的应用程序”?

提前致谢!

 config.read_encrypted_secrets = true config.action_mailer.default_url_options = { :host => "domain.com" } config.action_mailer.perform_deliveries = true config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :user_name => "username", :password => "password", :enable_starttls_auto => true } 

试试这个配置。

好的,所以过了一段时间我终于做到了。

我必须做的是:

1)对我的Gmail帐户进行两步validation,您可以在此处启用: https : //myaccount.google.com/security

2)在此处创建应用专用密码: https : //support.google.com/accounts/answer/185833

它是一个格式为16个小写字母的字符串。 它们以4个为一组分开显示,但它们都在同一个字符串中。 您所要做的就是在块内的密码字段中添加此应用程序密码。

  ... :user_name => 'my@gmail.com', :password => 'abcdefghijklmnop', ... 

所有其他设置无变化。