我正在尝试在本地测试Exception Notifier(开发)。这是我目前的设置:
development.rb
Myapp::Application.configure do
# Set Mailer default url
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { :host => '0.0.0.0:3000' }
#config.action_mailer.delivery_method = :file
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => 'smtp.gmail.com',
:port => 587,
:domain => 'gmail.com',
:user_name => 'username@gmail.com',
:password => 'password',
:authentication => 'plain',
:enable_starttls_auto => true
}
config.middleware.use ExceptionNotification::Rack,
:email => {
:email_prefix => "[Myapp Error] ",
:sender_address => %{"notifier" <no-reply@myapp.com>},
:exception_recipients => %w{myemail@gmail.com}
}
end
但是当我&#34;创造&#34;应用程序中的错误 - 例如,如果我设置了不存在的ID,例如
http://localhost:3000/users/12270/edit
我在浏览器中只看到错误,但未发送电子邮件(电子邮件凭据正确)。
我想念什么?
比你
答案 0 :(得分:1)
要在开发模式下禁用错误页面,您还需要设置:
config.consider_all_requests_local = false
答案 1 :(得分:1)
ExceptionNotifier会在500错误时发送消息。但是,您的测试&#34; ...如果我请求不存在的ID ...&#34; 会返回未找到的404。 From the docs:
某些机架应用程序(特别是Rails)使用&#34; X-Cascade&#34;标题为 将请求处理职责传递给下一个中间件 叠加。
滑轨&#39;路由中间件使用这种策略,而不是提高 例外,处理路由错误(例如404s);被通知 每当发生404时,将此选项设置为&#34; false。&#34;
答案 2 :(得分:0)
我通常在开发环境中使用gem letter_opener
。
我认为Exception Notifier不会在开发环境中发送电子邮件,这是可以理解的,因为您破坏了开发中的所有事物,并且每个人都出错了。