【问题标题】:what is the mailer name of Exception Notification?异常通知的邮件名称是什么?
【发布时间】:2014-02-18 07:36:27
【问题描述】:

我的 smtp 设置和异常通知 gem 有问题。

因为我需要从多个地址发送邮件,所以我使用了这篇文章中描述的设置:

http://justinreid.com/configure-actionmailer-to-use-multiple-smtp-settings/

Ruby (/config/initializers/action_mailer.rb)

module ActionMailer
  class Base
    cattr_accessor :smtp_config

    self.smtp_config = YAML::load(File.open("#{Rails.root}/config/smtp.yml"))[Rails.env]

    def self.smtp_settings
      mailer = self.smtp_config[mailer_name]
      @@smtp_settings = mailer.symbolize_keys
    end

  end
end

YAML (/config/smtp.yml)

common: &common
  address: "smtp.gmail.com"
  port: 587
  authentication: "plain"
  enable_starttls_auto: true

development:
  account_mailer:
    <<: *common,
    domain: "mail.dev.domain.com",
    user_name: "support@dev.domain.com",
    password: "password",
    from: "Domain Support "
  message_mailer:
    <<: *common,
    domain: "mail.messages.dev.domain.com",
    user_name: "messenger@messages.dev.domain.com",
    password: "password",
    from: "Domain Messages "
production:
  account_mailer:
    <<: *common,
    domain: "mail.domain.com",
    user_name: "support@domain.com",
    password: "password",
    from: "Domain Support "
  message_mailer:
    <<: *common,
    domain: "mail.messages.domain.com",
    user_name: "messenger@messages.domain.com",
    password: "password",
    from: "Domain Messages "

在 YAML 文件中,每个邮件程序和环境组合都有设置。当我用我的邮件发送邮件时,一切都很好。但是当我尝试使用异常通知 gem 时,我没有收到电子邮件通知,而是在我的日志文件中显示一条错误消息:

使用“电子邮件”通知程序发送通知时出错。 NoMethodError: 未定义方法symbolize_keys' for nil:NilClass /home/maurice/rails/abmore_server2/config/initializers/action_mailer.rb:9:in smtp_settings'

在我看来,异常通知 gem 有一个自己的邮件程序名称,并尝试在 smtp.yml 中搜索相应的 smtp 设置,但由于未定义而无法找到。我试图在 gems lib 目录中搜索邮件程序名称,但我找不到它,因为我或多或少是 RoR 的新手。

供您参考:异常通知配置在:

Ruby (/config/initializers/exception_notification.rb)

AppName::Application.config.middleware.use ExceptionNotification::Rack,
    :ignore_exceptions => [],
  :email => {
    :email_prefix => "development - error: ",
    :sender_address => "username@username.com",
    :exception_recipients => "recipient@recipient.com",
    :delivery_method => :smtp,
    :smtp_settings => {
      :address => "smtp.gmail.com",
      :port => 587,
      :authentication => "plain",
      :user_name => "username@username.com",
      :password => "password",
      enable_starttls_auto: true
    }
  }

我想我必须在这里搜索这个文件:https://github.com/smartinez87/exception_notification/blob/master/lib/exception_notifier/email_notifier.rb

谁能告诉我异常通知 gem 的正确邮件名称是什么,以便我可以将其添加到我的 smtp.yml 文件中?

我在我的项目中使用 Rails 3.2.x。所以我不能使用新的 :delivery_method_options。

【问题讨论】:

    标签: ruby-on-rails exception-notification


    【解决方案1】:

    借助调试器 gem:https://github.com/cldwalker/debugger 和这个 railscasts 教程:http://railscasts.com/episodes/54-debugging-ruby-revised?autoplay=true 我能够自己找到它。邮件程序的名称是“exception_notifier”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-30
      • 2014-08-11
      • 1970-01-01
      • 2014-12-16
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      相关资源
      最近更新 更多