module ActionMailer # Implements the ActiveSupport::LogSubscriber for logging notifications when # email is delivered and received. class LogSubscriber < ActiveSupport::LogSubscriber # An email was delivered. def deliver(event) return unless logger.info? recipients = Array(event.payload[:to]).join(', ') info("\nSent mail to #{recipients} (#{event.duration.round(1)}ms)") debug(event.payload[:mail]) end # An email was received. def receive(event) return unless logger.info? info("\nReceived mail (#{event.duration.round(1)}ms)") debug(event.payload[:mail]) end # Use the logger configured for ActionMailer::Base def logger ActionMailer::Base.logger end end end ActionMailer::LogSubscriber.attach_to :action_mailer