微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在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
}

原文地址:https://www.jb51.cc/ruby/269842.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐