Skip to main content

interceptors_observers

🚧 Using Interceptors and Observers​

Leverage Mail::Interceptor to modify outgoing emails globally, e.g., stamp footers or reroute to a test inbox in non-production environments.

# config/initializers/mail_interceptor.rb
class FooterInterceptor
def self.delivering_email(mail)
mail.body = "\n--\nCompany Footer" + mail.body.raw_source
end
end

Mail.register_interceptor(FooterInterceptor)

# To observe deliveries:
class DeliveryObserver
def self.delivered_email(mail)
Rails.logger.info "Email sent to: #{mail.to} -- Subject: #{mail.subject}"
end
end

Mail.register_observer(DeliveryObserver)