如何在Rails中使用Heroku和Sendgrid配置Devise电子邮件?

前端之家收集整理的这篇文章主要介绍了如何在Rails中使用Heroku和Sendgrid配置Devise电子邮件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的Rails 3.2.7应用程序,添加了Devise,并添加了Sendgrid部署到Heroku.它在heroku上工作正常,除非需要进行密码检索,需要发送电子邮件.从我读过的所有帖子中我怀疑我以某种方式错误地设置了邮件参数.任何建议表示赞赏.

对于config / environments / production.rb,我添加

config.action_mailer.default_url_options = { :host => 'smtp.sendgrid.net'}

添加了config / initializers / devise.rb

config.mailer_sender = "mail-to-send@from.com"

对于config / environments.rb我添加

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

解决方法

所以,你的问题是你引用了错误的环境变量. Heroku将您的SendGrid凭证存储在ENV [‘SENDGRID_USERNAME’]和ENV [‘SENDGRID_PASSWORD’]中.您使用实际的用户名和密码作为密钥名称.

这将有效:

ActionMailer::Base.smtp_settings = {
  :address        => 'smtp.sendgrid.net',:enable_starttls_auto => true
}

猜你在找的Ruby相关文章