diff --git a/app/mailers/concerns/mailer_error_concern.rb b/app/mailers/concerns/mailer_error_concern.rb index aab0e6f7b..99258b3d4 100644 --- a/app/mailers/concerns/mailer_error_concern.rb +++ b/app/mailers/concerns/mailer_error_concern.rb @@ -20,12 +20,8 @@ module MailerErrorConcern protected def log_delivery_error(exception) - if defined?(message) && message.to.present? - EmailEvent.create_from_message!(message, status: "dispatch_error") - Sentry.capture_exception(exception, extra: { to: message&.to, subject: message&.subject }) - else - Sentry.capture_exception(exception) - end + EmailEvent.create_from_message!(message, status: "dispatch_error") + Sentry.capture_exception(exception, extra: { to: message.to, subject: message.subject }) # TODO find a way to re attempt the job end diff --git a/app/models/email_event.rb b/app/models/email_event.rb index 2a2630808..53cca951d 100644 --- a/app/models/email_event.rb +++ b/app/models/email_event.rb @@ -19,7 +19,9 @@ class EmailEvent < ApplicationRecord class << self def create_from_message!(message, status:) - message.to.each do |recipient| + to = message.to || ["unset"] # no recipients when error occurs *before* setting to: in the mailer + + to.each do |recipient| EmailEvent.create!( to: pseudonymize_email(recipient), subject: message.subject, diff --git a/app/services/email_delivery_observer.rb b/app/services/email_delivery_observer.rb index a61b2e56e..c297dcf85 100644 --- a/app/services/email_delivery_observer.rb +++ b/app/services/email_delivery_observer.rb @@ -1,7 +1,5 @@ class EmailDeliveryObserver def self.delivered_email(message) - return if message.to.nil? - EmailEvent.create_from_message!(message, status: "dispatched") end end