demarches-normaliennes/app/mailers/application_mailer.rb

42 lines
1.3 KiB
Ruby
Raw Normal View History

2015-12-14 16:09:20 +01:00
class ApplicationMailer < ActionMailer::Base
helper :application # gives access to all helpers defined within `application_helper`.
default from: "#{APPLICATION_NAME} <#{CONTACT_EMAIL}>"
2015-12-14 16:09:20 +01:00
layout 'mailer'
before_action :add_dolist_header
# Dont retry to send a message if the server rejects the recipient address
rescue_from Net::SMTPSyntaxError do |_error|
message.perform_deliveries = false
end
rescue_from Net::SMTPServerBusy do |error|
2020-09-24 15:12:21 +02:00
if /unexpected recipients/.match?(error.message)
message.perform_deliveries = false
end
end
# Attach the procedure logo to the email (if any).
# Returns the attachment url.
def attach_logo(procedure)
2019-08-28 13:11:58 +02:00
if procedure.logo.attached?
logo_filename = procedure.logo.filename.to_s
attachments.inline[logo_filename] = procedure.logo.download
2019-08-28 14:27:41 +02:00
attachments[logo_filename].url
end
2019-08-28 13:11:58 +02:00
rescue StandardError => e
# A problem occured when reading logo, maybe the logo is missing and we should clean the procedure to remove logo reference ?
2021-01-28 14:49:22 +01:00
Sentry.capture_exception(e, extra: { procedure_id: procedure.id })
2019-08-28 13:11:58 +02:00
nil
end
# mandatory for dolist
# used for tracking in Dolist UI
# the delivery_method is yet unknown (:balancer)
# so we add the dolist header for everyone
def add_dolist_header
headers['X-Dolist-Message-Name'] = action_name
end
2015-12-14 16:09:20 +01:00
end