Rails 4 + 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

Но когда я "создаю" ошибку в приложении - например, если я установил несуществующий идентификатор, например,

http://localhost:3000/users/12270/edit

Я вижу только ошибку в браузере, но электронная почта не отправляется (учетные данные электронной почты верны).

Что мне не хватает?

Чем ты

2 ответа

Чтобы отключить страницу ошибки в режиме разработки, необходимо также установить:

config.consider_all_requests_local = false

ExceptionNotifier будет отправлять сообщения об ошибке 500. Тем не менее, ваш тест "... если я запрашиваю несуществующий идентификатор..." возвращает 404 не найден. Из документов:

Некоторые стоечные приложения (в частности Rails) используют заголовок "X-Cascade" для передачи ответственности за обработку запросов следующему промежуточному программному обеспечению в стеке.

Промежуточное программное обеспечение маршрутизации Rails использует эту стратегию, а не вызывает исключение, для обработки ошибок маршрутизации (например, 404); чтобы получать уведомления всякий раз, когда происходит 404, установите эту опцию на "ложь".

Я обычно пользуюсь gem letter_opener для среды разработки.

Я думаю, что Exception Notifier не отправляет электронные письма в среде разработки, что понятно, так как вы ломаете все виды вещей в процессе разработки и получаете ошибки для каждого, что будет раздражать.

Другие вопросы по тегам