通过Sendgrid和Heroku部署时,Action Mailer production.rb无法正常工作

时间:2017-06-07 15:57:51

标签: ruby-on-rails heroku actionmailer

我目前正在尝试向在我的Rails应用上创建帐户的新用户发送帐户确认电子邮件。

我已经通过development.rb在本地成功部署,但出于某种原因,我每次都收到错误消息"我们很抱歉,但出了点问题。如果您是应用程序所有者,请检查日志以获取更多信息"。我已经在Stack Overflow以及Heroku,Youtube上查看了几个资源,但未能找到解决方案。

这是我在environment / production.rb中的代码:

# Don't care if the mailer can't send.
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: "smtp.sendgrid.net",
port: 587,
domain: ENV["SENDGRID_DOMAIN"],
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["SENDGRID_USERNAME"],
password: ENV["SENDGRID_PASSWORD"]
}

config.action_mailer.default_url_options = {:host => "<myherokuappname>.herokuapp.com/"}


config.action_mailer.perform_caching = false

再次确认一下,我能够在本地部署电子邮件,而不是在生产级别。任何提示将不胜感激。

1 个答案:

答案 0 :(得分:0)

我最近也将SendGrid集成到我的Heroku应用程序中。我的production.rb设置如下:

  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.default_url_options = { host: '<myherokuappname>.herokuapp.com' }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :user_name => ENV['SENDGRID_USERNAME'],
    :password => ENV['SENDGRID_PASSWORD'],
    :domain => '<myherokuappname>.herokuapp.com',
    :address => 'smtp.sendgrid.net',
    :port => 587,
    :authentication => :plain,
    :enable_starttls_auto => true
  }

我在几分钟前测试了它,它发送的很好。