6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/mailer_log/mail_interceptor.rb', line 6
def delivering_email(message)
tracking_id = SecureRandom.uuid
message.['X-Mailer-Log-Tracking-ID'] = tracking_id
MailerLog::Current.email_data = {
tracking_id: tracking_id,
mailer_class: (message),
mailer_action: (message),
from_address: message.from&.first,
to_addresses: Array(message.to),
cc_addresses: Array(message.cc),
bcc_addresses: Array(message.bcc),
subject: message.subject,
html_body: extract_html_body(message),
text_body: extract_text_body(message),
headers: (message),
call_stack: capture_call_stack,
git_revision: capture_git_revision,
domain: message[:domain]&.value
}
rescue StandardError => e
Rails.logger.error("MailerLog::MailInterceptor error: #{e.message}")
Rails.logger.error(e.backtrace.first(5).join("\n"))
Airbrake.notify(e) if defined?(Airbrake)
end
|