Class: MailerLog::MailObserver

Inherits:
Object
  • Object
show all
Defined in:
lib/mailer_log/mail_observer.rb

Class Method Summary collapse

Class Method Details

.delivered_email(message) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/mailer_log/mail_observer.rb', line 6

def delivered_email(message)
  data = MailerLog::Current.email_data
  return unless data

  email = MailerLog::Email.new(
    data.merge(
      message_id: message.message_id,
      status: 'sent'
    )
  )

  # Resolve accountable via configured resolver
  resolve_accountable(email)

  email.save!
rescue StandardError => e
  Rails.logger.error("MailerLog::MailObserver error: #{e.message}")
  Rails.logger.error(e.backtrace.first(5).join("\n"))
  report_error(e)
ensure
  MailerLog::Current.reset
end