Rails 4应用程序中的异常通知程序不发送电子邮件

时间:2014-10-12 14:55:35

标签: ruby-on-rails ruby exception-handling actionmailer exception-notification

我整个下午都在和这个问题作斗争。

我用过这个宝石:

gem 'exception_notification'

然后我把它放到/config/environments/production.rb文件中:

config.action_mailer.default_url_options = { :host => 'http://www.website.com' }

  config.action_mailer.delivery_method = :sendmail
  # Defaults to:
  # config.action_mailer.sendmail_settings = {
  #   location: '/usr/sbin/sendmail',
  #   arguments: '-i -t'
  # }
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  #config.action_mailer.default_options = {from: 'admin@website.com'}
  config.action_mailer.delivery_method = :smtp

  config.action_mailer.smtp_settings = {
    :address => "smtp.gmail.com",
    :port => 587,
    :domain => "gmail.com",
    :user_name => "myemail@gmail.com",
    :password => "password",
    :authentication => "plain",
    :enable_starttls_auto => true
  }

  config.middleware.use ExceptionNotification::Rack,
    :email => {
      :email_prefix => "[App Error] ",
      :sender_address => %{"notifier" <myemail@gmail.com>},
      :exception_recipients => %w{error_email@gmail.com}
    }

但它没有成功。

所以我试着把它放到/config/application.rb文件中:

...
module MyApp
  class Application < Rails::Application
    ...
    config.middleware.use ExceptionNotification::Rack,
      :email => {
        :email_prefix => "[App Error] ",
        :sender_address => %{"notifier" <myemail@gmail.com>},
        :exception_recipients => %w{error_email@gmail.com}
      }
  end
end

我如何测试它 - 我将URL设置为不存在的ID,例如/users/1000000。但我没有收到任何有关此错误的电子邮件到我的收件箱。

有人可以帮我解决这个问题吗?

谢谢你们。

1 个答案:

答案 0 :(得分:0)

我知道这是一个很老的帖子,但我可能有一个答案。在生产配置中,action_mailer有两个配置:

config.action_mailer.delivery_method = :sendmail
# and also...
config.action_mailer.delivery_method = :smtp

可能要删除其中一个。